public void RegisterDiscountRule(IDiscountRule rule) { if (_rules.Any(x => x.Id == rule.Id)) { return; } _rules.Add(rule); }
public void AddDiscount(IDiscountRule discountRule) { var ruleExists = _rules.Any(x => x.GetType() == discountRule.GetType()); if (ruleExists == false) { _rules.Add(discountRule); } }
/// <inheritdoc /> public decimal CalculateDiscount(OrderItem item) { decimal totalDiscount = 0; foreach (var discountType in _discountTypes) { IDiscountRule rule = Activator.CreateInstance(discountType) as IDiscountRule; if (rule != null) { totalDiscount += rule.CalculateDiscount(item); } } return(totalDiscount); }
public virtual string GetRequirementUrlInternal(IDiscountRule discountRequirementRule, Discount discount, string discountRequirementId) { if (discountRequirementRule == null) { throw new ArgumentNullException(nameof(discountRequirementRule)); } if (discount == null) { throw new ArgumentNullException(nameof(discount)); } var storeLocation = _workContext.CurrentStore.SslEnabled ? _workContext.CurrentStore.SecureUrl.TrimEnd('/') : _workContext.CurrentStore.Url.TrimEnd('/'); string url = string.Format("{0}/{1}", storeLocation, discountRequirementRule.GetConfigurationUrl(discount.Id, discountRequirementId)); return(url); }
public MixtPercentageDiscount(string productId, decimal value, IDiscountRule rule) : base(productId, value) { Rule = rule; }
public DiscountOffer(IDiscountRule discount, ICondition condition) { Discount = discount; Condition = condition; }
public CustomerDateOfFirstPurchaseRuleTests() { customerDateOfFirstPurchaseRule = new CustomerDateOfFirstPurchaseRule(); }
public TotalCost(IDiscountRule discount) { this.discount = discount; }
public CustomerSeniorRuleTests() { _customerSeniorRule = new CustomerSeniorRule(); }
public ByTitle(IDiscountRule discount) { this.discount = discount; }
public DiscountOffer(ICondition condition, IDiscountRule discount, int countDay = 7) : base(condition) { this.discount = discount; date = DateTime.Now; this.countDay = countDay; }
/// <summary> /// Updates the asynchronous. /// </summary> /// <param name="id">The identifier.</param> /// <param name="model">The model.</param> /// <returns></returns> public async Task <bool> UpdateAsync(Guid id, IDiscountRule model) { var entity = Mapper.Map <ShoppingBasket.DAL.Entities.DiscountRule>(model); return(await DiscountRuleRepository.UpdateAsync(id, entity)); }
/// <summary> /// Creates the asynchronous. /// </summary> /// <param name="model">The model.</param> /// <returns></returns> public async Task <bool> CreateAsync(IDiscountRule model) { var entity = Mapper.Map <ShoppingBasket.DAL.Entities.DiscountRule>(model); return(await DiscountRuleRepository.CreateAsync(entity)); }
public ByCategory(IDiscountRule discount) { this.discount = discount; }
public CustomerVeteranRuleTests() { _customerIsVeteranRule = new CustomerVeteranRule(); }
public CustomerBirthDateRuleTests() { birthDayRule = new CustomerBirthDateRule(); }