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()); } }
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); }