
نوشته شده توسط
ghasem110deh
قشنگ شده :)
ولی واسه من اون دو تا مهمه که چجو ر پیاده کردین ؟!

اینطوری:
static readonly Uri uri = new Uri ("espand://accounting/fund/insert");
public override Uri BaseUri {
get {
return uri;
}
}
IContent alterWindow = SchemeHandlerInterfaceInstance.CreateContent (Domain, DatabaseSelection, null, new Uri (string.Format ("espand://accounting/person/alter?Row={0}", System.Web.HttpUtility.UrlEncode (selectedObject.GID.ToString ()))));
ChildNavigator.Navigate (alterWindow, NavigationMode.Default, true);
alterWindow.ObjectCreated += AlterWindowObjectCreated;
البته نزدیک بیست سی هزار خط دیگه هم وسطش هست ولی اصلش اینه.
نمونه برای سوال دومتون:
protected override IContent OnCreateContent (DatabaseSelection databaseSelection, IChildNavigator childNavigator, Uri uri)
{
var arguments = uri.GetQueryArguments ();
ProductPackaging productPackaging;
Guid? product;
productPackaging = UriArgumentParserInterfaceInstance.GetObject <ProductPackaging> (ModuleInstance.Domain, arguments, databaseSelection, "Row");
product = UriArgumentParserInterfaceInstance.GetObject <Guid?> (ModuleInstance.Domain, arguments, databaseSelection, "ProductPackaging");
if (product != null) {
return new PackagingContainer (ModuleInstance.Domain, databaseSelection, uri, product.GetValueOrDefault ());
}
if (productPackaging != null) {
return new PackagingContainer (ModuleInstance.Domain, databaseSelection, uri, productPackaging);
}
throw new ArgumentException ();
}
همونطور که میبینید یک module مجزا هست و بسته به یک سری پارامتر دیگه که جای دیگه تعیین میشن انتخاب میشه.(اون دو خط که product و productPackaging رو انتخاب میکنه برای حالت insert/update هست)
ورودی module هایی که یک جا استفاده میشن تقریبا با هم یکی هستند و پارامتر های هم نام دارند.