// TODO Копипаста, поправить.
 public ViewResult AddSale(int certificateId)
 {
     var viewModel = new EditGiftCertificateSaleViewModel()
       {
     Sale = this.session.Repository<GiftCertificateSale>().Create()
       };
       viewModel.Sale.SaleDateTime = DateTime.Now;
       viewModel.Sale.OperatorId = User.Identity.GetUserId();
       viewModel.Sale.CertificateId = certificateId;
       return View("Partial/_AddSale", viewModel);
 }
 public ActionResult AddSale(EditGiftCertificateSaleViewModel viewModel)
 {
     //TODO Избавиться от дублирования логики.
       if (!ModelState.IsValid)
     return View(viewModel);
       var sale = viewModel.Sale;
       if (sale.IsDelivered == true)
     sale.Salary = 200;
       else
     sale.Salary = 50;
       this.session.Repository<GiftCertificateSale>().AddOrUpdate(sale);
       var certificate = this.session.Repository<GiftCertificate>().Get(sale.CertificateId);
       certificate.IsSold = true;
       this.session.Repository<GiftCertificate>().AddOrUpdate(certificate);
       this.session.Commit();
       this.CreateSalary(sale.OperatorId, SalarySourceType.GiftCertificate, sale.Id, sale.Salary.Value);
       return RedirectToAction("GiftCertificates");
 }
 public ActionResult EditGiftCertificateSale(EditGiftCertificateSaleViewModel viewModel)
 {
     //TODO Избавиться от дублирования логики.
       if (!ModelState.IsValid)
     return View(viewModel);
       var sale = viewModel.Sale;
       if (viewModel.Sale.IsDelivered == true)
     sale.Salary = 200;
       else
     sale.Salary = 50;
       this.SaveEntity(sale);
       this.CreateSalary(sale.OperatorId, SalarySourceType.GiftCertificate, sale.Id, sale.Salary.Value);
       return RedirectToAction("GiftCertificates");
 }
 public ViewResult EditGiftCertificateSale(int id)
 {
     var viewModel = new EditGiftCertificateSaleViewModel()
       {
     Sale = this.session.Repository<GiftCertificateSale>().Get(id)
       };
       return View(viewModel);
 }