public void Save(FreeOfChargeDiscountViewModel model, out bool isEdit)
       {
          
           FreeOfChargeDiscount discount=null;
           if(model.Id !=Guid.Empty)
               discount = _freeOfChargeDiscountRepository.GetById(model.Id);
           else
           {
               model.Id = Guid.NewGuid();
           }

           if(discount ==null)
           {
               discount = new FreeOfChargeDiscount(model.Id)
               {
                   ProductRef = new ProductRef { ProductId = model.ProductId },
                   isChecked = true,
                   EndDate = DateTime.Parse(model.EndDate),
                   StartDate = DateTime.Parse(model.StartDate)
               };
               isEdit = false;
           }
           else
           {
               discount.EndDate =DateTime.Parse(model.EndDate);
               discount.StartDate = DateTime.Parse(model.StartDate);
               discount.ProductRef=new ProductRef(){ProductId = model.ProductId};
               discount.Id = model.Id;
               isEdit = true;
           }
           _freeOfChargeDiscountRepository.Save(discount);
       }
 public ActionResult CreateEdit(Guid? id)
 {
     var model = new FreeOfChargeDiscountViewModel();
     if (id.HasValue)
     {
         model = _focViewModelBuilder.Get(id.Value);
     }
     else
     {
         model.StartDate = DateTime.Today.ToShortDateString();
         model.EndDate = DateTime.Today.AddDays(1).ToShortDateString();
     }
     ViewBag.ProductList = _focViewModelBuilder.ProductList();
     return View(model);
 }
        public ActionResult CreateEdit(FreeOfChargeDiscountViewModel model)
        {
            try
            {

                bool isEdit;
                _focViewModelBuilder.Save(model, out isEdit);
                if (isEdit)
                {
                    TempData["msg"] = "Discount Successfully Edited";
                    _auditLogViewModelBuilder.AddAuditLog(this.User.Identity.Name, "Edit", "Free of charge Product", DateTime.Now);
                }

                else
                {
                    TempData["msg"] = "Discount Successfully Created";
                    _auditLogViewModelBuilder.AddAuditLog(this.User.Identity.Name, "Create", "Free of charge Product", DateTime.Now);
                }

                return RedirectToAction("List");
            }
            catch (DomainValidationException dve)
            {
                ValidationSummary.DomainValidationErrors(dve, ModelState);
                ViewBag.ProductList = _focViewModelBuilder.ProductList();
                return View();
            }
            catch (Exception exx)
            {
                TempData["msg"] = exx.Message;
                ViewBag.ProductList = _focViewModelBuilder.ProductList();
                return View();
            }
        }