public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value) { var ret = new FreeSKUCollection(); string freeSKUs = value as string; if (!string.IsNullOrEmpty(freeSKUs)) { string[] skuQtyArr = freeSKUs.Split(','); foreach (var l in skuQtyArr) { string[] skuQty = l.Split('|'); if (skuQty.Length != 0) { ret.Add(new FreeSKU { Quantity = int.Parse(skuQty[1]), SKU = skuQty[0] }); } } } return(ret); }
public void ProcessOtherMarchPromotionPC_Test() { var Promotion = new PromotionElement { StartDate = "01-01-2016", EndDate = "01-31-2016", PromotionType = ServiceProvider.OrderChinaSvc.PromotionType.Other, HasIncrementaldegree = true, AmountMinInclude = 2000, CustTypeList = new List <string> { "PC", "CS" }, FreeSKUList = new FreeSKUCollection { new FreeSKU { Quantity = 1, SKU = "560P" } }, }; Promotion.Code = "00017"; var Cart = MyHLShoppingCartGenerator.GetBasicShoppingCart("CN1632369 ", "zh-CN", "20", "3019", new ShippingAddress_V02()); Cart.CartItems = new ShoppingCartItemList { ShoppingCartItemHelper.GetCartItem(1, 1, "1316"), ShoppingCartItemHelper.GetCartItem(2, 1, "1317"), }; var Order = new Order_V01(); Order.DistributorID = "CN1632369"; var order1 = new OnlineOrderItem() { Quantity = 10, SKU = "1316", Description = "", RetailPrice = 0, IsPromo = false, }; Order.OrderItems = new OrderItems { order1 }; Order.Shipment = new ShippingInfo_V01 { Address = new ServiceProvider.OrderSvc.Address() { City = "眉山市", Country = "cn" }, ShippingMethodID = "22", WarehouseCode = "3019" }; Order.CountryOfProcessing = "CN"; var ordertotal = new OrderTotals_V02(); GetQuotes(Order, ordertotal, false, out ordertotal); var promorule = new MyHerbalife3.Ordering.Rules.Promotional.zh_CN.PromotionalRules(); Cart.Totals = ordertotal; FreeSKUCollection skuCollection = promorule.CheckPcPromo(Promotion, Cart); Assert.AreEqual(skuCollection[0].Quantity, 2); }
public void ProcessVolumePromotionDSNovPromo_Test() { var promoelement = new PromotionElement { StartDate = "11-01-2015", EndDate = "11-30-2015", PromotionType = MyHerbalife3.Ordering.ServiceProvider.OrderChinaSvc.PromotionType.Volume, HasIncrementaldegree = true, VolumeMinInclude = 200, CustTypeList = new List <string> { "DS", "FM", "SC", "SP", "SQ" }, FreeSKUList = new FreeSKUCollection { new FreeSKU { Quantity = 1, SKU = "1443" }, new FreeSKU { Quantity = 1, SKU = "K365" }, }, SelectableSKUList = new FreeSKUCollection { new FreeSKU { Quantity = 1, SKU = "1316" }, new FreeSKU { Quantity = 1, SKU = "1318" }, }, FreeSKUListForVolume = new FreeSKUCollection { new FreeSKU { Quantity = 1, SKU = "1443" }, }, FreeSKUListForSelectableSku = new FreeSKUCollection { new FreeSKU { Quantity = 1, SKU = "K365" }, }, }; promoelement.Code = "DSNovPromo"; var cart = MyHLShoppingCartGenerator.GetBasicShoppingCart("CN640521", "zh-CN", "20", "3019", new ShippingAddress_V02()); cart.CartItems = new ShoppingCartItemList { ShoppingCartItemHelper.GetCartItem(1, 1, "1316"), ShoppingCartItemHelper.GetCartItem(2, 1, "1442"), ShoppingCartItemHelper.GetCartItem(3, 1, "1318") }; var order = new Order_V01(); order.DistributorID = "CN640521"; var orderitem1 = new OnlineOrderItem() { Quantity = 10, SKU = "1316", Description = "", RetailPrice = 0, IsPromo = false, }; var orderitem2 = new OnlineOrderItem() { Quantity = 1, SKU = "1442", Description = "", RetailPrice = 0, IsPromo = false, }; var orderitem3 = new OnlineOrderItem() { Quantity = 1, SKU = "1318", Description = "", RetailPrice = 0, IsPromo = false, }; order.OrderItems = new OrderItems { orderitem1, orderitem2, orderitem3 }; order.Shipment = new ShippingInfo_V01 { Address = new MyHerbalife3.Ordering.ServiceProvider.OrderSvc.Address { City = "眉山市", Country = "cn" }, ShippingMethodID = "22", WarehouseCode = "3019" }; order.CountryOfProcessing = "CN"; var ordertotal = new MyHerbalife3.Ordering.ServiceProvider.OrderSvc.OrderTotals_V02(); GetQuotes(order, ordertotal, false, out ordertotal); var promorule = new MyHerbalife3.Ordering.Rules.Promotional.zh_CN.PromotionalRules(); cart.Totals = ordertotal; FreeSKUCollection skuCollection = promorule.CheckDsNovPromo(promoelement, cart); Assert.AreEqual(skuCollection[0].Quantity, 3); }