public ActionResult Edit(ProductDiscount productDiscount, string discountStatus)
        {
            try
            {
                ViewBag.ProductDiscountProductID      =
                    ViewBag.ProductDiscountGroupID    =
                        ViewBag.ProductDiscountRoleID = false;

                switch (discountStatus)
                {
                case "0":
                    ViewBag.ProductDiscountProductID = true;

                    //productDiscount.ProductID = null;
                    productDiscount.GroupID = null;
                    productDiscount.RoleID  = null;
                    break;

                case "1":
                    ViewBag.ProductDiscountGroupID = true;

                    productDiscount.ProductID = null;
                    //productDiscount.GroupID = null;
                    productDiscount.RoleID = null;
                    break;

                case "2":
                    ViewBag.ProductDiscountRoleID = true;

                    productDiscount.ProductID = null;
                    productDiscount.GroupID   = null;
                    //productDiscount.RoleID = null;
                    break;

                default:
                    break;
                }

                switch (productDiscount.DiscountType)
                {
                case DiscountType.Percent:
                    productDiscount.Price = 0;
                    break;

                case DiscountType.PriceAfter:
                    productDiscount.Price   = (productDiscount.Price * (ExtensionMethods.IsRial ? 1 : 10));
                    productDiscount.Percent = 0;
                    break;

                case DiscountType.PriceBefore:
                    productDiscount.Price   = (productDiscount.Price * (ExtensionMethods.IsRial ? 1 : 10));
                    productDiscount.Percent = 0;
                    break;

                default:
                    break;
                }

                productDiscount.LastUpdate = DateTime.Now;

                ViewBag.Success = true;
                var id = productDiscount.ID;

                if (productDiscount.ID == -1)
                {
                    ProductDiscounts.Insert(productDiscount);

                    UserNotifications.Send(UserID, String.Format("جدید - تخفیف محصول '{0}'", productDiscount.Percent), "/Admin/ProductDiscounts/Edit/" + productDiscount.ID, NotificationType.Success);
                }
                else
                {
                    ProductDiscounts.Update(productDiscount);
                }

                productDiscount.Price = (productDiscount.Price / (ExtensionMethods.IsRial ? 1 : 10));

                #region Set Task

                var taskText = String.Format("تخفیف \"{0}\" در حال اتمام است.", productDiscount.Title, productDiscount.PersianEndDate);
                var taskDate = productDiscount.EndDate.AddDays(-1);

                UserTasks.SetTask("اتمام مهلت تخفیف",
                                  taskText,
                                  StaticValues.AdminID,
                                  "ProductDiscounts_" + productDiscount.ID,
                                  "/Admin/ProductDiscounts/Edit/" + productDiscount.ID,
                                  taskDate);

                #endregion Set Task

                if (id == -1)
                {
                    productDiscount = new ProductDiscount();
                }
            }
            catch (Exception ex)
            {
                SetErrors(ex);
            }

            return(ClearView(productDiscount));
        }