public override void OnPageLoad(object sender, EventArgs e) { base.OnPageLoad(sender, e); string no = Request.Param; if (!string.IsNullOrEmpty(no)) { if (int.TryParse(no, out sysNo)) { new ComboFacade(this).Load(sysNo, (obj, args) => { this.VM = args.Result; IsActive = VM.IsActive; SetButtonStatus(); setRadioButtonIsEnabled(); }); } } else { this.VM = new ComboVM(); } this.gridAddProduct.DataContext = new ComboItemVM(); }
private void btnAdd_Click(object sender, RoutedEventArgs e) { ComboItemVM itemVM = (sender as Button).DataContext as ComboItemVM; if (!itemVM.ProductSysNo.HasValue) { Window.Alert(ResComboSaleMaintain.Warning_NoItems, Newegg.Oversea.Silverlight.Controls.Components.MessageType.Warning); return; } if (ValidationManager.Validate(this.gridAddProduct)) { if (this.VM.Items.FirstOrDefault(p => p.ProductSysNo == itemVM.ProductSysNo) != null) { Window.Alert(ResComboSaleMaintain.Warning_SaleItemExists, Newegg.Oversea.Silverlight.Controls.Components.MessageType.Warning); return; } var productInfo = this.ucProductPicker.SelectedProductInfo; string productID = this.ucProductPicker.ProductID; itemVM.ProductID = productID; if (productInfo != null) { itemVM.ProductName = productInfo.ProductName; itemVM.ProductUnitCost = productInfo.UnitCost; itemVM.ProductCurrentPrice = productInfo.CurrentPrice; itemVM.MerchantName = productInfo.MerchantName; } var t = Newegg.Oversea.Silverlight.Utilities.UtilityHelper.BinarySerialize(this.VM); ComboVM clonedVM = Newegg.Oversea.Silverlight.Utilities.UtilityHelper.BinaryDeserialize <ComboVM>(t); //DeepClone方法要报错 //ComboVM clonedVM = Newegg.Oversea.Silverlight.Utilities.UtilityHelper.DeepClone<ComboVM>(this.VM); clonedVM.Items.Add(itemVM); //调用Service Check,不能用VM,而要用他的深拷贝对象 new ComboFacade(this).CheckComboItemIsPass(clonedVM, (obj, args) => { if (args.Result != null && (args.Result.Count > 0)) { string msg = args.Result.Join("\r\n"); Window.Alert(msg, Newegg.Oversea.Silverlight.Controls.Components.MessageType.Warning); return; } //To Fix bug,如果不深拷贝一次,则添加到列表中的Item不会显示ProductID var str = Newegg.Oversea.Silverlight.Utilities.UtilityHelper.BinarySerialize(itemVM); var clonedItemVM = Newegg.Oversea.Silverlight.Utilities.UtilityHelper.BinaryDeserialize <ComboItemVM>(str); this.VM.Items.Add(clonedItemVM); this.gridAddProduct.DataContext = new ComboItemVM(); setRadioButtonIsEnabled(); }); } }
public void CheckComboItemIsPass(ComboVM model, EventHandler <RestClientEventArgs <List <string> > > callback) { string relativeUrl = "/MKTService/Combo/CheckComboItemIsPass"; ComboInfo msg = model.ConvertVM <ComboVM, ComboInfo>(); msg.CompanyCode = CPApplication.Current.CompanyCode; restClient.Create <List <string> >(relativeUrl, msg, (obj, args) => { if (args.FaultsHandle()) { return; } callback(obj, args); }); }
public void Create(ComboVM model, EventHandler <RestClientEventArgs <int?> > callback) { string relativeUrl = "/MKTService/Combo/Create"; ComboInfo msg = model.ConvertVM <ComboVM, ComboInfo>(); msg.Name.Content = model.Name; msg.CompanyCode = CPApplication.Current.CompanyCode; restClient.Create <int?>(relativeUrl, msg, (obj, args) => { if (args.FaultsHandle()) { return; } model.SysNo = args.Result; callback(obj, args); }); }
public void Update(ComboVM model, EventHandler <RestClientEventArgs <ComboVM> > callback) { string relativeUrl = "/MKTService/Combo/Update"; ComboInfo msg = model.ConvertVM <ComboVM, ComboInfo>(); msg.Name.Content = model.Name; restClient.Update <ComboInfo>(relativeUrl, msg, (obj, args) => { if (args.FaultsHandle()) { return; } var vm = args.Result.Convert <ComboInfo, ComboVM>(); RestClientEventArgs <ComboVM> e = new RestClientEventArgs <ComboVM>(vm, this.viewPage); callback(obj, e); }); }