Example #1
0
        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));
        }
Example #2
0
        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);
            }
        }