public ActionResult Add(AddEditInvoiceViewModel viewModel) { // This is bad, we probably need to implement some type of // login here in the future var createdBy = _Mediator.Send(new GetInvoices()) .First() .CreatedBy; var invoice = _Mediator.Send(new CreateInvoice() { CompanyId = viewModel.CompanyId, CreatedById = createdBy.Id, Id = _GuidGenerator.Generate(), InvoiceNumber = viewModel.InvoiceNumber }); foreach (var lineItem in viewModel.LineItems) { _Mediator.Send(new AddLineItem() { Amount = Convert.ToDecimal(lineItem.Amount), CreatedById = createdBy.Id, Description = lineItem.Description, Id = _GuidGenerator.Generate(), InvoiceId = invoice.Id }); throw new Exception("Testing rollback"); } return(Json(_Mapper.Map <InvoiceViewModel>(invoice))); }
public ActionResult Add() { var viewModel = new AddEditInvoiceViewModel(); viewModel.Companies = _Mediator.Send(new GetCompanies()) .Select(c => new SelectListItem() { Text = c.Name, Value = c.Id.ToString() }) .ToList(); var json = JsonConvert.SerializeObject(viewModel, new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver() }); return(View((object)json)); }