public ActionResult Create(Guid instanceId, CreateViewModel model) { if (ModelState.IsValid) { var ev = ExpenseEventFactory.CreateExpense(instanceId, Guid.NewGuid(), model.Category, model.Shop, model.Sum, model.Date, model.AffectedUsers, this.GetAudit()); using (var db = Context.Create()) { db.StoredEvents.Add(StoredEvent.FromEvent(ev)); EventProcessor.Process(db, ev); db.SaveChanges(); return(RedirectToAction("Create", new { instanceId })); } } return(View(model)); }
public ActionResult Delete(Guid instanceId, Guid expenseId, CreateViewModel model) { if (ModelState.IsValid) { using (var db = Context.Create()) { var audit = this.GetAudit(); var ev = ExpenseEventFactory.DeleteExpense(instanceId, expenseId, audit); db.StoredEvents.Add(StoredEvent.FromEvent(ev)); EventProcessor.Process(db, ev); db.SaveChanges(); return(RedirectToAction("Index", new { instanceId })); } } return(View(model)); }
public ActionResult CreateMany(Guid instanceId, IEnumerable <CreateManyDto> dtos, CreateViewModel model) { using (var db = Context.Create()) { var expenses = new List <CreateExpenseEvent>(); var audit = this.GetAudit(); foreach (var item in dtos) { expenses.Add(ExpenseEventFactory.CreateExpense(instanceId, Guid.NewGuid(), item.CategoryId, item.Shop, -item.Sum, item.Date, item.AffectedUsers, audit)); } db.StoredEvents.AddRange(expenses.Select(e => StoredEvent.FromEvent(e))); foreach (var ev in expenses) { EventProcessor.Process(db, ev); } db.SaveChanges(); return(RedirectToAction("Index", new { instanceId })); } }