// GET: Schedule/Edit/5 public ActionResult Edit(int id) { var data = db.Get(id); if (new SqlDataServices <Category>().Get(data.CategoryID).Type == Data.Enums.CategoryType.Expense) { data.Amount *= -1; } var model = new Schedule(data); var accounts = new SqlDataServices <Data.Models.Accounts>().GetAll().Where(e => e.Active).OrderBy(e => e.Name).ToList(); var category = new SqlDataServices <Data.Models.Category>().GetAll().OrderBy(e => e.Type).ThenBy(e => e.Name); var payee = new SqlDataServices <Data.Models.Payee>().GetAll().OrderBy(e => e.Name); ViewBag.AccountsSelected = accounts.FirstOrDefault(e => e.ID == model.AccountsID); if (ViewBag.AccountsSelected == null) { ViewBag.AccountsSelected = new SqlDataServices <Data.Models.Accounts>().Get(model.AccountsID); accounts.Add(ViewBag.AccountsSelected); } ViewBag.CategorySelected = category.First(e => e.ID == model.CategoryID); ViewBag.PayeeSelected = payee.First(e => e.ID == model.PayeeID); ViewBag.Accounts = accounts; ViewBag.Category = category; ViewBag.Payee = payee; return(View(model)); }
public ActionResult Edit(int id, Schedule data) { if (data.Amount == 0) { ModelState.AddModelError(nameof(data.Amount), $"Amount can't be zero"); } if (!ModelState.IsValid) { var accounts = new SqlDataServices <Data.Models.Accounts>().GetAll().Where(e => e.Active).OrderBy(e => e.Name).ToList(); if (!accounts.Exists(e => e.ID == data.AccountsID)) { accounts.Add(new SqlDataServices <Data.Models.Accounts>().Get(data.AccountsID)); } ViewBag.Accounts = accounts; ViewBag.Category = new SqlDataServices <Data.Models.Category>().GetAll().OrderBy(e => e.Type).ThenBy(e => e.Name); ViewBag.Payee = new SqlDataServices <Data.Models.Payee>().GetAll().OrderBy(e => e.Name); return(View(data)); } try { // TODO: Add update logic here if (new SqlDataServices <Category>().Get(data.CategoryID).Type == Data.Enums.CategoryType.Expense) { data.Amount *= -1; } db.Edit(id, data.ReverseMapper()); return(RedirectToAction("Index")); } catch { ViewBag.Message = "An Error occoured yor entry coudn't be updated"; return(View()); } }