private IPromotionQualification GetCurrentQualification(Promotion p)
        {
            if (p == null)
            {
                return(null);
            }
            string itemId = this.itemid.Value;
            long   temp   = 0;

            long.TryParse(itemId, out temp);
            IPromotionQualification q = p.GetQualification(temp);

            return(q);
        }
        private bool SaveEditor(Promotion p, IPromotionQualification q)
        {
            switch (q.TypeId.ToString().ToUpper())
            {
            case PromotionQualificationBase.TypeIdAnyProduct:     // all saved at time of edit, no extra save here
            case PromotionQualificationBase.TypeIdProductBvin:
            case PromotionQualificationBase.TypeIdProductCategory:
            case PromotionQualificationBase.TypeIdProductType:
            case PromotionQualificationBase.TypeIdUserIs:
            case PromotionQualificationBase.TypeIdUserIsInGroup:
            case PromotionQualificationBase.TypeIdOrderHasCoupon:
            case PromotionQualificationBase.TypeIdAnyShippingMethod:
            case PromotionQualificationBase.TypeIdShippingMethodIs:
            case PromotionQualificationBase.TypeIdAnyOrder:
                return(true);

            case PromotionQualificationBase.TypeIdOrderSubTotalIs:
                decimal ototal       = ((OrderSubTotalIs)q).Amount;
                decimal parsedototal = 0;
                if (decimal.TryParse(this.OrderSubTotalIsField.Text, out parsedototal))
                {
                    ototal = parsedototal;
                }
                ((OrderSubTotalIs)q).Amount = ototal;
                return(MyPage.MTApp.MarketingServices.Promotions.Update(p));

            case PromotionQualificationBase.TypeIdOrderHasProducts:
                int qty1       = ((OrderHasProducts)q).Quantity;
                int parsedqty1 = 1;
                if (int.TryParse(this.OrderProductQuantityField.Text, out parsedqty1))
                {
                    qty1 = parsedqty1;
                }
                QualificationSetMode setmode = ((OrderHasProducts)q).SetMode;
                int parsedsetmode            = 1;
                if (int.TryParse(this.lstOrderProductSetMode.SelectedValue, out parsedsetmode))
                {
                    setmode = (QualificationSetMode)parsedsetmode;
                }
                ((OrderHasProducts)q).Quantity = qty1;
                ((OrderHasProducts)q).SetMode  = setmode;
                return(MyPage.MTApp.MarketingServices.Promotions.Update(p));
            }

            return(false);
        }
        public bool SaveQualification()
        {
            Promotion p = GetCurrentPromotion();

            if (p == null)
            {
                return(false);
            }
            IPromotionQualification q = GetCurrentQualification(p);

            if (q == null)
            {
                return(false);
            }

            return(SaveEditor(p, q));
        }
Ejemplo n.º 4
0
        public bool AddQualification(IPromotionQualification q)
        {
            long maxid = 0;

            if (_qualifications.Count > 0)
            {
                maxid = _qualifications.Max(y => y.Id);
            }
            if (maxid < 0)
            {
                maxid = 0;
            }

            q.Id = maxid + 1;
            _qualifications.Add(q);

            return(true);
        }
Ejemplo n.º 5
0
        private IPromotionQualification QualificationFactory(IEnumerable <XElement> nodes)
        {
            if (nodes == null)
            {
                return(null);
            }

            XElement nodeTypeId = nodes.Where(y => y.Name == "TypeId").FirstOrDefault();

            if (nodeTypeId == null)
            {
                return(null);
            }
            Guid typeId = new Guid(nodeTypeId.Value);

            IPromotionQualification result = PromotionQualificationBase.Factory(typeId.ToString().ToUpperInvariant());

            if (result == null)
            {
                return(null);
            }

            XElement nodeId = nodes.Where(y => y.Name == "Id").FirstOrDefault();

            if (nodeId != null)
            {
                long temp = 0;
                long.TryParse(nodeId.Value, out temp);
                result.Id = temp;
            }
            XElement nodeSettings = nodes.Where(y => y.Name == "Settings").FirstOrDefault();

            if (nodeSettings != null)
            {
                foreach (XElement setting in nodeSettings.Descendants("Setting"))
                {
                    string key   = setting.Element("Key").Value;
                    string value = setting.Element("Value").Value;
                    result.Settings[key] = value;
                }
            }

            return(result);
        }
Ejemplo n.º 6
0
        public bool AddQualification(IPromotionQualification q)
        {

            long maxid = 0;
            if (this._Qualifications.Count > 0)
            {
                maxid = this._Qualifications.Max(y => y.Id);
            }
            if (maxid < 0) maxid = 0;
    
            q.Id = maxid + 1;
            _Qualifications.Add(q);

            return true;
        }
        private void LoadCorrectEditor()
        {
            Promotion p = GetCurrentPromotion();
            IPromotionQualification q = GetCurrentQualification(p);

            if (q == null)
            {
                return;
            }

            this.MultiView1.Visible = true;

            switch (q.TypeId.ToString().ToUpper())
            {
            case PromotionQualificationBase.TypeIdAnyProduct:
                this.MessageBox1.ShowInformation("This qualification does not have any configuration options.");
                this.MultiView1.Visible = false;
                break;

            case PromotionQualificationBase.TypeIdProductBvin:
                this.MultiView1.SetActiveView(this.viewProductBvin);
                break;

            case PromotionQualificationBase.TypeIdProductCategory:
                this.MultiView1.SetActiveView(this.viewProductCategory);
                LoadProductCategoryEditor((ProductCategory)q);
                break;

            case PromotionQualificationBase.TypeIdProductType:
                this.MultiView1.SetActiveView(this.viewProductType);
                LoadProductTypeEditor((ProductType)q);
                break;

            case PromotionQualificationBase.TypeIdOrderHasCoupon:
                this.MultiView1.SetActiveView(this.viewOrderHasCoupon);
                LoadOrderHasCouponEditor((OrderHasCoupon)q);
                break;

            case PromotionQualificationBase.TypeIdAnyOrder:
                this.MessageBox1.ShowInformation("This qualification does not have any configuration options.");
                this.MultiView1.Visible = false;
                break;

            case PromotionQualificationBase.TypeIdOrderSubTotalIs:
                this.MultiView1.SetActiveView(this.viewOrderSubTotalIs);
                LoadOrderSubTotalIsEditor((OrderSubTotalIs)q);
                break;

            case PromotionQualificationBase.TypeIdOrderHasProducts:
                this.MultiView1.SetActiveView(this.viewOrderHasProduct);
                LoadOrderProductEditor((OrderHasProducts)q);
                break;

            case PromotionQualificationBase.TypeIdUserIs:
                this.MultiView1.SetActiveView(this.viewUserId);
                LoadUserIsEditor((UserIs)q);
                break;

            case PromotionQualificationBase.TypeIdUserIsInGroup:
                this.MultiView1.SetActiveView(this.viewUserIsInGroup);
                LoadUserIsInGroupEditor((UserIsInGroup)q);
                break;

            case PromotionQualificationBase.TypeIdAnyShippingMethod:
                this.MessageBox1.ShowInformation("Any shipping method does not have any configuration options.");
                this.MultiView1.Visible = false;
                break;

            case PromotionQualificationBase.TypeIdShippingMethodIs:
                this.MultiView1.SetActiveView(viewShippingMethodIs);
                LoadShippingMethodIsEditor((ShippingMethodIs)q);
                break;
            }
        }
        private bool SaveEditor(Promotion p, IPromotionQualification q)
        {
            switch (q.TypeId.ToString().ToUpper())
            {
                case PromotionQualificationBase.TypeIdAnyProduct: // all saved at time of edit, no extra save here
                case PromotionQualificationBase.TypeIdProductBvin:
                case PromotionQualificationBase.TypeIdProductCategory:
                case PromotionQualificationBase.TypeIdProductType:
                case PromotionQualificationBase.TypeIdUserIs:
                case PromotionQualificationBase.TypeIdUserIsInGroup:
                case PromotionQualificationBase.TypeIdOrderHasCoupon:
                case PromotionQualificationBase.TypeIdAnyShippingMethod:
                case PromotionQualificationBase.TypeIdShippingMethodIs:
                case PromotionQualificationBase.TypeIdAnyOrder:
                    return true;
                case PromotionQualificationBase.TypeIdOrderSubTotalIs:
                    decimal ototal = ((OrderSubTotalIs)q).Amount;
                    decimal parsedototal = 0;
                    if (decimal.TryParse(this.OrderSubTotalIsField.Text, out parsedototal))
                    {
                        ototal = parsedototal;
                    }
                    ((OrderSubTotalIs)q).Amount = ototal;
                    return MyPage.MTApp.MarketingServices.Promotions.Update(p);
                case PromotionQualificationBase.TypeIdOrderHasProducts:
                    int qty1 = ((OrderHasProducts)q).Quantity;
                    int parsedqty1 = 1;
                    if (int.TryParse(this.OrderProductQuantityField.Text, out parsedqty1))
                    {
                        qty1 = parsedqty1;
                    }
                    QualificationSetMode setmode = ((OrderHasProducts)q).SetMode;
                    int parsedsetmode = 1;
                    if (int.TryParse(this.lstOrderProductSetMode.SelectedValue, out parsedsetmode))
                    {
                        setmode = (QualificationSetMode)parsedsetmode;
                    }
                    ((OrderHasProducts)q).Quantity = qty1;
                    ((OrderHasProducts)q).SetMode = setmode;
                    return MyPage.MTApp.MarketingServices.Promotions.Update(p);
            }

            return false;
        }
Ejemplo n.º 9
0
        public void LoadQualification(Promotion p, IPromotionQualification qualif)
        {
            PromotionId              = p.Id;
            QualificationId          = qualif.Id;
            mvQualifications.Visible = true;

            switch (qualif.TypeId.ToString().ToUpper())
            {
            case PromotionQualificationBase.TypeIdAnyProduct:
                mvQualifications.Visible = false;
                break;

            case PromotionQualificationBase.TypeIdProductBvin:
                mvQualifications.SetActiveView(viewProductBvin);
                break;

            case PromotionQualificationBase.TypeIdProductCategory:
                mvQualifications.SetActiveView(viewProductCategory);
                break;

            case PromotionQualificationBase.TypeIdProductType:
                mvQualifications.SetActiveView(viewProductType);
                break;

            case PromotionQualificationBase.TypeIdOrderHasCoupon:
                mvQualifications.SetActiveView(viewOrderHasCoupon);
                break;

            case PromotionQualificationBase.TypeIdAnyOrder:
                ucMessageBox.ShowInformation("This qualification does not have any configuration options.");
                mvQualifications.Visible = false;
                break;

            case PromotionQualificationBase.TypeIdOrderSubTotalIs:
                mvQualifications.SetActiveView(viewOrderSubTotalIs);
                break;

            case PromotionQualificationBase.TypeIdOrderHasProducts:
                mvQualifications.SetActiveView(viewOrderHasProduct);
                break;

            case PromotionQualificationBase.TypeIdUserIs:
                mvQualifications.SetActiveView(viewUserId);
                break;

            case PromotionQualificationBase.TypeIdUserIsInGroup:
                mvQualifications.SetActiveView(viewUserIsInGroup);
                break;

            case UserIsInRole.TypeIdString:
                mvQualifications.SetActiveView(viewUserIsInRole);
                break;

            case PromotionQualificationBase.TypeIdAnyShippingMethod:
                ucMessageBox.ShowInformation("Any shipping method does not have any configuration options.");
                mvQualifications.Visible = false;
                break;

            case PromotionQualificationBase.TypeIdShippingMethodIs:
                mvQualifications.SetActiveView(viewShippingMethodIs);
                break;

            case PromotionQualificationBase.TypeIdLineItemCategory:
                mvQualifications.SetActiveView(viewLineItemCategory);
                break;

            case AffiliateApproved.TypeIdString:
                mvQualifications.SetActiveView(viewAffiliateApproved);
                break;

            case LineItemIsProduct.TypeIdString:
                mvQualifications.SetActiveView(viewLineItemIs);
                break;

            case SumOrCountOfProducts.TypeIdString:
                mvQualifications.SetActiveView(viewProductsSumCount);
                break;

            case ProductTypeIs.TypeIdString:
                mvQualifications.SetActiveView(viewProductTypeIsNot);
                break;

            case OrderHasNotProducts.TypeIdString:
                mvQualifications.SetActiveView(viewProductIsNot);
                break;

            case VendorOrManufacturerIs.TypeIdString:
                mvQualifications.SetActiveView(viewVendorManufacturer);
                break;
            }

            LoadQualificationEditor(true);
        }