コード例 #1
0
        private OptionalAccessoriesVM EtoV(OptionalAccessoriesInfo entity)
        {
            OptionalAccessoriesVM viewmodel = entity.Convert <OptionalAccessoriesInfo, OptionalAccessoriesVM>((en, vm) =>
            {
                vm.Name = en.Name.Content;
                foreach (var item in vm.Items)
                {
                    entity.Items.ForEach(i =>
                    {
                        if (i.SysNo == item.SysNo)
                        {
                            //Format折扣
                            var dpdTmp    = i.Discount == null ? 0m : i.Discount.Value;
                            item.Discount = dpdTmp.ToString("0");
                            //Format折扣比例
                            dpdTmp = i.DiscountPercent == null ? 0m :
                                     (i.DiscountPercent.Value <= 1 ? i.DiscountPercent.Value * 100 : i.DiscountPercent.Value);
                            item.DiscountPercent = dpdTmp.ToString("0");
                        }
                    });
                }
            });

            return(viewmodel);
        }
コード例 #2
0
        public void Load(int sysNo, EventHandler <RestClientEventArgs <OptionalAccessoriesVM> > callback)
        {
            string relativeUrl = string.Format("/MKTService/OptionalAccessories/{0}", sysNo);

            restClient.Query <OptionalAccessoriesInfo>(relativeUrl, (obj, args) =>
            {
                if (args.FaultsHandle())
                {
                    return;
                }
                //var vm = args.Result.Convert<OptionalAccessoriesInfo, OptionalAccessoriesVM>();
                //vm.Name = args.Result.Name.Content;
                //RestClientEventArgs<OptionalAccessoriesVM> e = new RestClientEventArgs<OptionalAccessoriesVM>(vm, this.viewPage);

                //callback(obj, e);

                OptionalAccessoriesInfo entity   = args.Result;
                OptionalAccessoriesVM _viewModel = null;
                if (entity == null)
                {
                    _viewModel = new OptionalAccessoriesVM();
                }
                else
                {
                    _viewModel = EtoV(entity);
                }

                callback(obj, new RestClientEventArgs <OptionalAccessoriesVM>(_viewModel, this.viewPage));
            });
        }
コード例 #3
0
        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 OptionalAccessoriesFacade(this).Load(sysNo, (obj, args) =>
                    {
                        this.VM = args.Result;
                        if (args.Result.Status == ComboStatus.WaitingAudit)
                        {
                            var desc = args.Result.DisplayApproveMsg.Join("\r\n");
                            if (!string.IsNullOrEmpty(desc))
                            {
                                Window.MessageBox.Show(desc
                                                       , Newegg.Oversea.Silverlight.Controls.Components.MessageBoxType.Warning);
                            }
                        }
                        SetButtonStatus();
                    });
                }
            }
            else
            {
                this.VM = new OptionalAccessoriesVM();
                SetButtonStatus();
            }
            this.gridAddProduct.DataContext = new OptionalAccessoriesItemVM();
        }
コード例 #4
0
        public void CheckOptionalAccessoriesItemIsPass(OptionalAccessoriesVM model, EventHandler <RestClientEventArgs <List <string> > > callback)
        {
            string relativeUrl          = "/MKTService/OptionalAccessories/CheckOptionalAccessoriesItemIsPass";
            OptionalAccessoriesInfo msg = model.ConvertVM <OptionalAccessoriesVM, OptionalAccessoriesInfo>();

            msg.CompanyCode = CPApplication.Current.CompanyCode;
            restClient.Create <List <string> >(relativeUrl, msg, (obj, args) =>
            {
                if (args.FaultsHandle())
                {
                    return;
                }
                callback(obj, args);
            });
        }
コード例 #5
0
        public void Create(OptionalAccessoriesVM model, EventHandler <RestClientEventArgs <int?> > callback)
        {
            string relativeUrl          = "/MKTService/OptionalAccessories/Create";
            OptionalAccessoriesInfo msg = model.ConvertVM <OptionalAccessoriesVM, OptionalAccessoriesInfo>();

            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);
            });
        }
コード例 #6
0
        public void Update(OptionalAccessoriesVM model, EventHandler <RestClientEventArgs <OptionalAccessoriesVM> > callback)
        {
            string relativeUrl          = "/MKTService/OptionalAccessories/Update";
            OptionalAccessoriesInfo msg = model.ConvertVM <OptionalAccessoriesVM, OptionalAccessoriesInfo>();

            msg.Name.Content = model.Name;
            restClient.Update <OptionalAccessoriesInfo>(relativeUrl, msg, (obj, args) =>
            {
                if (args.FaultsHandle())
                {
                    return;
                }
                var vm = args.Result.Convert <OptionalAccessoriesInfo, OptionalAccessoriesVM>();
                RestClientEventArgs <OptionalAccessoriesVM> e = new RestClientEventArgs <OptionalAccessoriesVM>(vm, this.viewPage);
                callback(obj, e);
            });
        }
コード例 #7
0
        private void btnSave_Click(object sender, RoutedEventArgs e)
        {
            ValidationManager.Validate(this.dgItems);
            List <int>            productSysNos = null;
            OptionalAccessoriesVM _vm           = this.dgItems.DataContext as OptionalAccessoriesVM;

            if (_vm.Items == null || _vm.Items.Count() < 1)
            {
                this.Window.Alert("商品列表不能为空");
            }
            foreach (OptionalAccessoriesItemVM rowVM in _vm.Items)
            {
                if (rowVM.HasValidationErrors)
                {
                    return;
                }
            }

            if (ValidationManager.Validate(this.gridBasicInfo))
            {
                if (this.VM.Items.Count < 2)
                {
                    Window.Alert(ResComboSaleMaintain.Warning_AtLeast2Items);
                    return;
                }
                if (this.VM.SysNo.HasValue && this.VM.SysNo > 0)
                {
                    if (this.VM.IsDeactive)
                    {
                        this.VM.TargetStatus = ComboStatus.Deactive;
                    }
                    else if (this.VM.IsActive)
                    {
                        this.VM.TargetStatus = ComboStatus.Active;
                    }
                    else
                    {
                        this.VM.TargetStatus = ComboStatus.WaitingAudit;
                    }

                    productSysNos = this.VM.Items.Select(o => o.ProductSysNo.Value).ToList <int>();
                    new OptionalAccessoriesFacade(this).CheckSaleRuleItemAndDiys(productSysNos, (obj, args) =>
                    {
                        if (args.Result.Count > 0)
                        {
                            UCMessageConfirm ucMessageConfirm = new UCMessageConfirm(args.Result.Join("\r\n\r\n"));
                            ucMessageConfirm.CurrentDialog    = Window.ShowDialog(ResComboSaleMaintain.Tip_Confirm, ucMessageConfirm, (obj1, args1) =>
                            {
                                if (args1.DialogResult == Newegg.Oversea.Silverlight.Controls.Components.DialogResultType.OK)
                                {
                                    new OptionalAccessoriesFacade(this).Update(this.VM, (obj2, args2) =>
                                    {
                                        this.VM.Status = this.VM.TargetStatus;

                                        SetButtonStatus();

                                        Window.Alert(ResComboSaleMaintain.Info_Successfully);
                                        Window.Refresh();
                                    });
                                }
                            });
                        }
                        else
                        {
                            new OptionalAccessoriesFacade(this).Update(this.VM, (obj2, args2) =>
                            {
                                this.VM.Status = this.VM.TargetStatus;

                                SetButtonStatus();

                                Window.Alert(ResComboSaleMaintain.Info_Successfully);
                                Window.Refresh();
                            });
                        }
                    });
                }
                else
                {
                    productSysNos = this.VM.Items.Select(o => o.ProductSysNo.Value).ToList <int>();
                    new OptionalAccessoriesFacade(this).CheckSaleRuleItemAndDiys(productSysNos, (obj, args) =>
                    {
                        if (args.Result.Count > 0)
                        {
                            UCMessageConfirm ucMessageConfirm = new UCMessageConfirm(args.Result.Join("\r\n\r\n"));
                            ucMessageConfirm.CurrentDialog    = Window.ShowDialog(ResComboSaleMaintain.Tip_Confirm, ucMessageConfirm, (obj1, args1) =>
                            {
                                if (args1.DialogResult == Newegg.Oversea.Silverlight.Controls.Components.DialogResultType.OK)
                                {
                                    new OptionalAccessoriesFacade(this).Create(this.VM, (obj2, args2) =>
                                    {
                                        this.VM.Status = ComboStatus.Deactive;
                                        Window.Alert(ResComboSaleMaintain.Info_Successfully);
                                        Window.Close();
                                    });
                                }
                            });
                        }
                        else
                        {
                            new OptionalAccessoriesFacade(this).Create(this.VM, (obj2, args2) =>
                            {
                                this.VM.Status = ComboStatus.Deactive;
                                Window.Alert(ResComboSaleMaintain.Info_Successfully);
                                Window.Close();
                            });
                        }
                    });
                }
                //Window.Refresh();
            }
        }
コード例 #8
0
        private void btnAdd_Click(object sender, RoutedEventArgs e)
        {
            if (!ValidationManager.Validate(this.gridAddProduct) || !ValidationManager.Validate(this.gridBasicInfo))
            {
                return;
            }

            OptionalAccessoriesItemVM itemVM = (sender as Button).DataContext as OptionalAccessoriesItemVM;

            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;
                #region 折扣比例
                //var itemDPTmp = 0m;
                //decimal.TryParse(TxtItemDiscountPercent.Text, out itemDPTmp);
                //itemVM.DiscountPercent = (itemDPTmp / 100).ToString("0.00");
                #endregion
                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);
                OptionalAccessoriesVM clonedVM = Newegg.Oversea.Silverlight.Utilities.UtilityHelper.BinaryDeserialize <OptionalAccessoriesVM>(t);
                //DeepClone方法要报错
                //ComboVM clonedVM = Newegg.Oversea.Silverlight.Utilities.UtilityHelper.DeepClone<ComboVM>(this.VM);
                clonedVM.Items.Add(itemVM);


                //调用Service Check,不能用VM,而要用他的深拷贝对象
                new OptionalAccessoriesFacade(this).CheckOptionalAccessoriesItemIsPass(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 <OptionalAccessoriesItemVM>(str);

                    this.VM.Items.Add(clonedItemVM);

                    this.gridAddProduct.DataContext = new OptionalAccessoriesItemVM();

                    this.CheckBox_Click(this.cbIsMaster, e);
                });
            }
        }