// 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 Delete(int id, string confirmation = "") { try { // TODO: Add delete logic here if (confirmation == "false") { var transactionDb = new SqlDataServices <Data.Models.Transactions>(); transactionDb.Delete(id, typeof(Category)); var scheduleDb = new SqlDataServices <Data.Models.Schedule>(); scheduleDb.Delete(id, typeof(Category)); } db.Delete(id); return(RedirectToAction("Index")); } catch (SqlException e) { if (e.Number == 547) { TempData["errorMessage"] = "If you Delete this entry you will delete all associated Transactions Do you want to procced?"; TempData["deleteError"] = true; return(RedirectToAction("Delete", id)); } TempData["errorMessage"] = "Sorry the requested command couldn't be performed please try again later "; return(RedirectToAction("Delete", id)); } catch { TempData["errorMessage"] = "Sorry, we couldn't delete your entry"; return(RedirectToAction("Delete", id)); } }
public ActionResult Create(Payee data) { if (db.GetAll().Select(e => e.Name).Contains(data.Name)) { ModelState.AddModelError(nameof(data.Name), $"An entry with the Name {data.Name} exists already. Please use a diffrent Name"); } if (!ModelState.IsValid) { var categorylist = new SqlDataServices <Data.Models.Category>().GetAll().OrderBy(e => e.Type).ThenBy(e => e.Name); ViewBag.Category = categorylist; return(View()); } try { // TODO: Add insert logic here db.Add(data.ReverseMapper()); return(RedirectToAction("Index")); } catch { ViewBag.Message = "An Error occured your entry hasn't been saved"; return(RedirectToAction("Index")); } }
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()); } }
// GET: Payee/Create public ActionResult Create() { var categorylist = new SqlDataServices <Data.Models.Category>().GetAll().OrderBy(e => e.Type).ThenBy(e => e.Name); ViewBag.Category = categorylist; return(View()); }
public IncomeExpenseCategory(Data.Models.Category data, DateTime startDate, DateTime endDate, int averageDividend) { var transactions = new SqlDataServices <Data.Models.Transactions>().GetAll(data.ID, typeof(Data.Models.Category)).Where(e => e.Date >= startDate && e.Date <= endDate); this.Name = data.Name; this.Total = transactions.Select(e => e.Amount).Sum(); this.Average = this.Total / averageDividend; this.IncomeOrExpense = data.Type; }
// GET: Payee/Edit/5 public ActionResult Edit(int id) { var data = db.Get(id); var model = new Payee(data); var categorylist = new SqlDataServices <Data.Models.Category>().GetAll().OrderBy(e => e.Type).ThenBy(e => e.Name); ViewBag.Category = categorylist; ViewBag.Selected = categorylist.FirstOrDefault(e => e.ID == model.CategoryID); ViewBag.SelectedList = new SelectList(ViewBag.Category, "ID", "Name", ViewBag.Selected); return(View(model)); }
// GET: Payee/Details/5 public ActionResult Details(int id) { var data = db.Get(id); var model = new Payee(data); var transactionsData = new SqlDataServices <Data.Models.Transactions>().GetAll(id, typeof(Data.Models.Payee)).OrderBy(e => e.Date); foreach (var item in transactionsData) { model.Transactions.Add(new Transactions(item)); } return(View(model)); }
public ActionResult Details(int id, TimeSelector timeSelector) { var data = db.Get(id); var model = new Payee(data); DateTime startDate; DateTime endDate; HelperLibary.EvaluateTimeSelector.Evaluate(timeSelector, out startDate, out endDate); var transactionsData = new SqlDataServices <Data.Models.Transactions>().GetAll(id, typeof(Data.Models.Category)).Where(e => e.Date > startDate && e.Date < endDate).OrderBy(e => e.Date); foreach (var item in transactionsData) { model.Transactions.Add(new Transactions(item)); } return(View(model)); }
public IncomeExpensePayee(Data.Models.Payee data, DateTime startDate, DateTime endDate, int averageDividend, bool positive = true) { IEnumerable <Data.Models.Transactions> transactions; if (positive) { transactions = new SqlDataServices <Data.Models.Transactions>().GetAll(data.ID, typeof(Data.Models.Category)).Where(e => e.Date >= startDate && e.Date <= endDate && e.Amount > 0); this.IncomeOrExpense = CategoryType.Income; } else { transactions = new SqlDataServices <Data.Models.Transactions>().GetAll(data.ID, typeof(Data.Models.Category)).Where(e => e.Date >= startDate && e.Date <= endDate && e.Amount < 0); this.IncomeOrExpense = CategoryType.Expense; } this.Name = data.Name; this.Total = transactions.Select(e => e.Amount).Sum(); this.Average = this.Total / averageDividend; }
public IncomeExpenseModel(TimeSelector leftHandTimeSelector, TimeSelector rightHandTimeSelector) { this.LeftHandTimeSelector = leftHandTimeSelector; this.RightHandTimeSelector = rightHandTimeSelector; DateTime leftHandStartDate; DateTime leftHandEndDate; DateTime rightHandStartDate; DateTime rightHandEndDate; int leftHandAverageDividend; int rightHandAverageDividend; var now = DateTime.Today; EvaluateTimeSelector.Evaluate(this.LeftHandTimeSelector, out leftHandStartDate, out leftHandEndDate, out leftHandAverageDividend); EvaluateTimeSelector.Evaluate(this.RightHandTimeSelector, out rightHandStartDate, out rightHandEndDate, out rightHandAverageDividend); if (this.Selection == IncomeExpenseSelection.Category) { var data = new SqlDataServices <Data.Models.Category>().GetAll(); this.LeftHandIncome = IncomeExpenseCategory.GetModel(data, leftHandStartDate, leftHandEndDate, leftHandAverageDividend).Where(e => e.IncomeOrExpense == CategoryType.Income).ToList(); this.LeftHandExpense = IncomeExpenseCategory.GetModel(data, leftHandStartDate, leftHandEndDate, leftHandAverageDividend).Where(e => e.IncomeOrExpense == CategoryType.Expense).ToList(); this.RightHandIncome = IncomeExpenseCategory.GetModel(data, rightHandStartDate, rightHandEndDate, rightHandAverageDividend).Where(e => e.IncomeOrExpense == CategoryType.Income).ToList(); this.RightHandExpense = IncomeExpenseCategory.GetModel(data, rightHandStartDate, rightHandEndDate, rightHandAverageDividend).Where(e => e.IncomeOrExpense == CategoryType.Expense).ToList(); this.Income = IncomeExpenseTable.GetModel(this.LeftHandIncome, this.RightHandIncome).ToList(); this.Expense = IncomeExpenseTable.GetModel(this.LeftHandExpense, this.RightHandExpense).ToList(); } if (this.Selection == IncomeExpenseSelection.Payee) { var data = new SqlDataServices <Data.Models.Payee>().GetAll(); this.LeftHandIncome = IncomeExpensePayee.GetModel(data, leftHandStartDate, leftHandEndDate, leftHandAverageDividend).Where(e => e.IncomeOrExpense == CategoryType.Income).ToList(); this.LeftHandExpense = IncomeExpensePayee.GetModel(data, leftHandStartDate, leftHandEndDate, leftHandAverageDividend).Where(e => e.IncomeOrExpense == CategoryType.Expense).ToList(); this.RightHandIncome = IncomeExpensePayee.GetModel(data, rightHandStartDate, rightHandEndDate, rightHandAverageDividend).Where(e => e.IncomeOrExpense == CategoryType.Income).ToList(); this.RightHandExpense = IncomeExpensePayee.GetModel(data, rightHandStartDate, rightHandEndDate, rightHandAverageDividend).Where(e => e.IncomeOrExpense == CategoryType.Expense).ToList(); this.Income = IncomeExpenseTable.GetModel(this.LeftHandIncome, this.RightHandIncome).ToList(); this.Expense = IncomeExpenseTable.GetModel(this.LeftHandExpense, this.RightHandExpense).ToList(); } }