public DiscountRequirementsPlugin( ILocalizationService localizationService, ILanguageService languageService, CustomerRoleDiscountRequirementRule customerRoleDiscountRequirementRule, HadSpentAmountDiscountRequirementRule hadSpentAmountDiscountRequirementRule, HasAllProductsDiscountRequirementRule hasAllProductsDiscountRequirementRule, HasOneProductDiscountRequirementRule hasOneProductDiscountRequirementRule, ShoppingCartDiscountRequirementRule shoppingCartDiscountRequirementRule) { _localizationService = localizationService; _languageService = languageService; _customerRoleDiscountRequirementRule = customerRoleDiscountRequirementRule; _hadSpentAmountDiscountRequirementRule = hadSpentAmountDiscountRequirementRule; _hasAllProductsDiscountRequirementRule = hasAllProductsDiscountRequirementRule; _hasOneProductDiscountRequirementRule = hasOneProductDiscountRequirementRule; _shoppingCartDiscountRequirementRule = shoppingCartDiscountRequirementRule; }
public ActionResult Configure(int discountId, int?discountRequirementId) { var discount = _discountService.GetDiscountById(discountId); if (discount == null) { throw new ArgumentException("Discount could not be loaded"); } DiscountRequirement discountRequirement = null; if (discountRequirementId.HasValue) { discountRequirement = discount.DiscountRequirements.Where(dr => dr.Id == discountRequirementId.Value).FirstOrDefault(); if (discountRequirement == null) { return(Content("Failed to load requirement.")); } } // parse settings from ExtraData string extraData = null; if (discountRequirement != null) { extraData = discountRequirement.ExtraData; } var settings = HadSpentAmountDiscountRequirementRule.DeserializeSettings(extraData); var model = new RequirementModel(); model.RequirementId = discountRequirementId.HasValue ? discountRequirementId.Value : 0; model.DiscountId = discountId; model.SpentAmount = discountRequirement != null ? discountRequirement.SpentAmount : decimal.Zero; model.LimitToCurrentBasketSubTotal = settings.LimitToCurrentBasketSubTotal; model.BasketSubTotalIncludesDiscounts = settings.BasketSubTotalIncludesDiscounts; //add a prefix ViewData.TemplateInfo.HtmlFieldPrefix = string.Format("DiscountRulesHadSpentAmount{0}", discountRequirementId.HasValue ? discountRequirementId.Value.ToString() : "0"); return(View("SmartStore.Plugin.DiscountRules.HadSpentAmount.Views.DiscountRulesHadSpentAmount.Configure", model)); }