public ActionResult Create(DiscountModel model, bool continueEditing) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageDiscounts)) return AccessDeniedView(); if (ModelState.IsValid) { var discount = model.ToEntity(); _discountService.InsertDiscount(discount); //activity log _customerActivityService.InsertActivity("AddNewDiscount", _localizationService.GetResource("ActivityLog.AddNewDiscount"), discount.Name); SuccessNotification(_localizationService.GetResource("Admin.Promotions.Discounts.Added")); return continueEditing ? RedirectToAction("Edit", new { id = discount.Id }) : RedirectToAction("List"); } //If we got this far, something failed, redisplay form PrepareDiscountModel(model, null); return View(model); }
public ActionResult Edit(DiscountModel model, bool continueEditing) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageDiscounts)) return AccessDeniedView(); var discount = _discountService.GetDiscountById(model.Id); if (discount == null) //No discount found with the specified id return RedirectToAction("List"); if (ModelState.IsValid) { var prevDiscountType = discount.DiscountType; discount = model.ToEntity(discount); _discountService.UpdateDiscount(discount); //clean up old references (if changed) and update "HasDiscountsApplied" properties if (prevDiscountType == DiscountType.AssignedToCategories && discount.DiscountType != DiscountType.AssignedToCategories) { //applied to categories var categories = discount.AppliedToCategories.ToList(); discount.AppliedToCategories.Clear(); _discountService.UpdateDiscount(discount); //update "HasDiscountsApplied" property foreach (var category in categories) _categoryService.UpdateHasDiscountsApplied(category); } if (prevDiscountType == DiscountType.AssignedToSkus && discount.DiscountType != DiscountType.AssignedToSkus) { //applied to product variants var productVariants = discount.AppliedToProductVariants.ToList(); discount.AppliedToProductVariants.Clear(); _discountService.UpdateDiscount(discount); //update "HasDiscountsApplied" property foreach (var pv in productVariants) _productService.UpdateHasDiscountsApplied(pv); } //activity log _customerActivityService.InsertActivity("EditDiscount", _localizationService.GetResource("ActivityLog.EditDiscount"), discount.Name); SuccessNotification(_localizationService.GetResource("Admin.Promotions.Discounts.Updated")); return continueEditing ? RedirectToAction("Edit", discount.Id) : RedirectToAction("List"); } //If we got this far, something failed, redisplay form PrepareDiscountModel(model, discount); return View(model); }