예제 #1
0
 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));
 }
예제 #2
0
 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));
 }
예제 #3
0
 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 }));
     }
 }