Пример #1
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 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();
        }
Пример #2
0
        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();
                });
            }
        }
Пример #3
0
        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);
            });
        }
Пример #4
0
        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);
            });
        }
Пример #5
0
        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);
            });
        }