public async Task CheckConditionalStoreQuantityDiscount()
        {
            Assert.AreEqual(1000, store.CalcPaySum(shoppingBasket));
            await marketRules.CreateConditionalDiscountAsync(store, store.GetFounder().Username, store.GetId(), RuleContext.Store, RuleType.Quantity, 0.2, productId : product.Id, valueLessThan : 12, valueGreaterEQThan : 20);

            Assert.AreEqual(1000, store.CalcPaySum(shoppingBasket));
        }
Beispiel #2
0
        public async Task CheckConditionalCategoryQuantityDiscount()
        {
            Assert.AreEqual(1000, store.CalcPaySum(shoppingBasket));
            await marketRules.CreateConditionalDiscountAsync(store, store.GetFounder().Username, store.GetId(), RuleContext.Category, RuleType.Quantity, 0.2, category : "CategoryName", valueGreaterEQThan : 5);

            Assert.AreEqual(800, store.CalcPaySum(shoppingBasket));
        }
        public async Task <Guid> AddConditionalDiscountAsync(string username, Guid storeId, RuleContext discountType, RuleType ruleType, double precent, string category = "", Guid productId = new Guid(),
                                                             double valueLessThan = int.MaxValue, double valueGreaterEQThan = 0, DateTime d1 = default(DateTime), DateTime d2 = default(DateTime))
        {
            Guid discountId = await marketRules.CreateConditionalDiscountAsync(await MarketStores.Instance.GetStoreById(storeId), username, storeId, discountType, ruleType, precent, category, productId, valueLessThan, valueGreaterEQThan, d1, d2);

            await StorePredicatesManager.Instance.SaveRequest(++counter, "CreateConditionalDiscountAsync", username, storeId, discountType, ruleType, precent, category, productId, valueLessThan, valueGreaterEQThan, d1, d2, discountId);

            var discountData = new DiscountData(discountId, username, storeId, discountType, ruleType, precent, category, productId, valueLessThan, valueGreaterEQThan, d1, d2);
            await discountsManager.AddDiscount(discountData);

            return(discountId);
        }