public virtual ActionResult CreateInvoice(int id, InvoiceFormViewModel model) { var memberId = WebHelper.GetIdentityId(User.Identity); if (memberId == 0) return View(MVC.Shared.Views.Error); var context = ModelFactory.GetUnitOfWork(); var mRepo = ModelFactory.GetRepository<IMemberRepository>(context); var lRepo = ModelFactory.GetRepository<ILocalisationRepository>(context); var iRepo = ModelFactory.GetRepository<IInvoiceRepository>(context); var member = mRepo.Get(memberId); var localisation = lRepo.Get(id); if (member == null) return View(MVC.Shared.Views.Error); if (ModelState.IsValid) { try { model.Invoice.CreationDate = DateTime.UtcNow; model.Invoice.InvoiceNumber = new InvoiceNumber(); iRepo.Add(model.Invoice); context.Commit(); using (var stream = new MemoryStream()) { context = ModelFactory.GetUnitOfWork(); iRepo = ModelFactory.GetRepository<IInvoiceRepository>(context); var invoiceData = iRepo.Get(model.Invoice.Id); _InvoiceService.GenerateInvoice(stream, invoiceData); return File(stream.ToArray(), "application/pdf", invoiceData.GetFileName() + ".pdf"); } } catch (Exception ex) { context.Complete(); _Logger.Error("CreateInvoice", ex); ModelState.AddModelError("", ex.Message); } } context = ModelFactory.GetUnitOfWork(); lRepo = ModelFactory.GetRepository<ILocalisationRepository>(context); localisation = lRepo.Get(id); return View(new InvoiceFormViewModel(localisation, model.Invoice)); }
public virtual ActionResult CreateInvoice(int id) { var memberId = WebHelper.GetIdentityId(User.Identity); if (memberId == 0) return View(MVC.Shared.Views.Error); try { var context = ModelFactory.GetUnitOfWork(); var mRepo = ModelFactory.GetRepository<IMemberRepository>(context); var lRepo = ModelFactory.GetRepository<ILocalisationRepository>(context); var member = mRepo.Get(memberId); var localisation = lRepo.Get(id); Member.Validate(member); var model = new InvoiceFormViewModel(localisation); return View(model); } catch (Exception ex) { _Logger.Error("CreateInvoice", ex); return View(MVC.Shared.Views.Error); } }