private string Categories()
        {
            var categories = db.LineItemCategories;

            var sb = new StringBuilder();

            using (var csv = new CsvWriter(new StringWriter(sb)))
            {
                LineItemCategory.CsvHeader(csv);
                foreach (var category in categories)
                {
                    category.AsCsvRow(csv);
                }
                return(sb.ToString());
            }
        }
Example #2
0
        public IActionResult PutCategory([FromRoute] string id)
        {
            var insert   = false;
            var category = db.LineItemCategories.SingleOrDefault(r => r.Id == id);

            if (category == null)
            {
                category = new LineItemCategory()
                {
                    Id = id
                };
                insert = true;
            }

            using (var reader = new StreamReader(Request.Body))
            {
                var requestJson = (JObject)JObject.Parse(reader.ReadToEnd())["result"];

                if (!category.UpdateWithJson(requestJson))
                {
                    return(new StatusCodeResult(422));
                }
            }

            if (TryValidateModel(category))
            {
                if (insert)
                {
                    db.LineItemCategories.Add(category);
                }
                db.SaveChanges();

                if (insert)
                {
                    return(new StatusCodeResult(201));
                }
                return(new StatusCodeResult(200));
            }
            else
            {
                return(new StatusCodeResult(422));
            }
        }
        public Promotion GetPredefinedPromotion(PreDefinedPromotion type)
        {
            var p = new Promotion();

            switch (type)
            {
            case PreDefinedPromotion.CustomSale:
                p.Name = "New Custom Sale";
                p.Mode = PromotionType.Sale;
                break;

            case PreDefinedPromotion.CustomOfferForLineItems:
                p.Name = "New Offer for Order Items";
                p.Mode = PromotionType.OfferForLineItems;
                break;

            case PreDefinedPromotion.CustomOfferForOrder:
                p.Name = "New Offer for Order";
                p.Mode = PromotionType.OfferForOrder;
                p.AddAction(new OrderTotalAdjustment());
                break;

            case PreDefinedPromotion.CustomOfferForShipping:
                p.Name = "New Offer for Shipping";
                p.Mode = PromotionType.OfferForShipping;
                p.AddAction(new OrderShippingAdjustment());
                break;

            case PreDefinedPromotion.CustomAffiliatePromotion:
                p.Name = "New Affiliate Promotion";
                p.Mode = PromotionType.Affiliate;
                p.AddAction(new RewardPointsAjustment());
                break;

            case PreDefinedPromotion.SaleCategories:
                p.Name = "New Category Sale";
                p.Mode = PromotionType.Sale;
                p.AddQualification(new ProductCategory());
                p.AddAction(new ProductPriceAdjustment());
                break;

            case PreDefinedPromotion.SaleProducts:
                p.Name = "New Product Sale";
                p.Mode = PromotionType.Sale;
                p.AddQualification(new ProductBvin());
                p.AddAction(new ProductPriceAdjustment());
                break;

            case PreDefinedPromotion.SaleProductType:
                p.Name = "New Product Type Sale";
                p.Mode = PromotionType.Sale;
                p.AddQualification(new ProductType());
                p.AddAction(new ProductPriceAdjustment());
                break;

            case PreDefinedPromotion.SaleStorewide:
                p.Name = "New Storewide Sale";
                p.Mode = PromotionType.Sale;
                p.AddQualification(new AnyProduct());
                p.AddAction(new ProductPriceAdjustment());
                break;

            case PreDefinedPromotion.SaleUser:
                p.Name = "New Sale By User";
                p.Mode = PromotionType.Sale;
                p.AddQualification(new UserIs());
                p.AddAction(new ProductPriceAdjustment());
                break;

            case PreDefinedPromotion.SaleUserGroup:
                p.Name = "New Sale By Price Group";
                p.Mode = PromotionType.Sale;
                p.AddQualification(new UserIsInGroup());
                p.AddAction(new ProductPriceAdjustment());
                break;

            case PreDefinedPromotion.OrderDiscountCoupon:
                p.Name = "New Order Discount With Coupon";
                p.Mode = PromotionType.OfferForOrder;
                p.AddQualification(new OrderHasCoupon());
                p.AddAction(new OrderTotalAdjustment());
                break;

            case PreDefinedPromotion.OrderDiscountUser:
                p.Name = "New Order Discount by User";
                p.Mode = PromotionType.OfferForOrder;
                p.AddQualification(new UserIs());
                p.AddAction(new OrderTotalAdjustment());
                break;

            case PreDefinedPromotion.OrderDiscountUserGroup:
                p.Name = "New Order Discount by Price Group";
                p.Mode = PromotionType.OfferForOrder;
                p.AddQualification(new UserIsInGroup());
                p.AddAction(new OrderTotalAdjustment());
                break;

            case PreDefinedPromotion.OrderFreeShipping:
                p.Name = "New Free Shipping Discount";
                p.Mode = PromotionType.OfferForShipping;
                p.AddQualification(new AnyShippingMethod());
                p.AddAction(new OrderShippingAdjustment(AmountTypes.Percent, -100m));
                break;

            case PreDefinedPromotion.OrderShippingDiscount:
                p.Name = "New Shipping Discount";
                p.Mode = PromotionType.OfferForShipping;
                p.AddQualification(new AnyShippingMethod());
                p.AddAction(new OrderShippingAdjustment(AmountTypes.Percent, 0m));
                break;

            case PreDefinedPromotion.OrderFreeShippingByCategory:
                p.Name = "New Free Shipping By Category";
                p.Mode = PromotionType.OfferForLineItems;
                var pq = new LineItemCategory();
                pq.CategoryNot = true;
                p.AddQualification(pq);
                p.AddAction(new LineItemFreeShipping());
                break;

            case PreDefinedPromotion.CustomOfferForFreeItems:
                p.Name = "New Offer For Free Items";
                p.Mode = PromotionType.OfferForFreeItems;
                break;
            }

            return(p);
        }