public ActionResult Configure(int discountId, int? discountRequirementId, string variantIds) { 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) { //update existing rule _settingService.SetSetting(string.Format("DiscountRequirement.RestrictedProductVariantIds-{0}", discountRequirement.Id), variantIds); } else { //save new rule discountRequirement = new DiscountRequirement() { DiscountRequirementRuleSystemName = "DiscountRequirement.PurchasedOneProduct" }; discount.DiscountRequirements.Add(discountRequirement); _discountService.UpdateDiscount(discount); _settingService.SetSetting(string.Format("DiscountRequirement.RestrictedProductVariantIds-{0}", discountRequirement.Id), variantIds); } return Json(new { Result = true, NewRequirementId = discountRequirement.Id }, JsonRequestBehavior.AllowGet); }
public ActionResult Configure(int discountId, int? discountRequirementId, string productIds) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageDiscounts)) return Content("Access denied"); 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.FirstOrDefault(dr => dr.Id == discountRequirementId.Value); if (discountRequirement != null) { //update existing rule _settingService.SetSetting(string.Format("DiscountRequirement.RestrictedProductIds-{0}", discountRequirement.Id), productIds); } else { //save new rule discountRequirement = new DiscountRequirement() { DiscountRequirementRuleSystemName = "DiscountRequirement.HasAllProducts" }; discount.DiscountRequirements.Add(discountRequirement); _discountService.UpdateDiscount(discount); _settingService.SetSetting(string.Format("DiscountRequirement.RestrictedProductIds-{0}", discountRequirement.Id), productIds); } return Json(new { Result = true, NewRequirementId = discountRequirement.Id }, JsonRequestBehavior.AllowGet); }
public ActionResult Configure(int discountId, int? discountRequirementId, decimal spentAmount) { 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) { //update existing rule discountRequirement.SpentAmount = spentAmount; _discountService.UpdateDiscount(discount); } else { //save new rule discountRequirement = new DiscountRequirement() { DiscountRequirementRuleSystemName = "DiscountRequirement.HadSpentAmount", SpentAmount = spentAmount, }; discount.DiscountRequirements.Add(discountRequirement); _discountService.UpdateDiscount(discount); } return Json(new { Result = true, NewRequirementId = discountRequirement.Id }, JsonRequestBehavior.AllowGet); }
public void Can_save_and_load_discountRequirement() { var discountRequirement = new DiscountRequirement { DiscountRequirementRuleSystemName = "BillingCountryIs", Discount = GetTestDiscount() }; var fromDb = SaveAndLoadEntity(discountRequirement); fromDb.ShouldNotBeNull(); fromDb.DiscountRequirementRuleSystemName.ShouldEqual("BillingCountryIs"); fromDb.Discount.ShouldNotBeNull(); fromDb.Discount.Name.ShouldEqual("Discount 1"); }
/// <summary> /// Delete discount requirement /// </summary> /// <param name="discountRequirement">Discount requirement</param> public virtual void DeleteDiscountRequirement(DiscountRequirement discountRequirement) { if (discountRequirement == null) throw new ArgumentNullException("discountRequirement"); _discountRequirementRepository.Delete(discountRequirement); _cacheManager.RemoveByPattern(DISCOUNTS_PATTERN_KEY); //event notification _eventPublisher.EntityDeleted(discountRequirement); }
public ActionResult Configure(int discountId, int? discountRequirementId, int customerRoleId) { 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.FirstOrDefault(dr => dr.Id == discountRequirementId.Value); if (discountRequirement != null) { //update existing rule _settingService.SetSetting(string.Format("DiscountRequirement.MustBeAssignedToCustomerRole-{0}", discountRequirement.Id), customerRoleId); } else { //save new rule discountRequirement = new DiscountRequirement() { DiscountRequirementRuleSystemName = "DiscountRequirement.MustBeAssignedToCustomerRole" }; discount.DiscountRequirements.Add(discountRequirement); _discountService.UpdateDiscount(discount); _settingService.SetSetting(string.Format("DiscountRequirement.MustBeAssignedToCustomerRole-{0}", discountRequirement.Id), customerRoleId); } return Json(new { Result = true, NewRequirementId = discountRequirement.Id }, JsonRequestBehavior.AllowGet); }
/// <summary> /// Delete discount requirement /// </summary> /// <param name="discountRequirement">Discount requirement</param> public virtual void DeleteDiscountRequirement(DiscountRequirement discountRequirement) { if (discountRequirement == null) throw new ArgumentNullException("discountRequirement"); var discount = _discountRepository.GetById(discountRequirement.DiscountId); if(discount==null) throw new ArgumentNullException("discount"); var req = discount.DiscountRequirements.FirstOrDefault(x => x.Id == discountRequirement.Id); if (req == null) throw new ArgumentNullException("discountRequirement"); discount.DiscountRequirements.Remove(req); UpdateDiscount(discount); _cacheManager.RemoveByPattern(DISCOUNTS_PATTERN_KEY); //event notification _eventPublisher.EntityDeleted(discountRequirement); }