public void SetSourceOfMoneyAndDestinationOfMoney(FinancialOperationViewModel financialOperationVm) { var bankAccount = _unitOfWork.BankAccountRepo .GetWhere(ba => ba.Id == financialOperationVm.FinancialOperation.BankAccountId).FirstOrDefault(); var subCategory = _unitOfWork.CategoryRepo .GetWhere(sc => sc.Id == financialOperationVm.FinancialOperation.SubCategoryId).FirstOrDefault(); var targetAccount = _unitOfWork.BankAccountRepo .GetWhere(ba => ba.Id == financialOperationVm.FinancialOperation.TargetBankAccountId).FirstOrDefault(); if (financialOperationVm.FinancialOperation.IsExpense) { financialOperationVm.FinancialOperation.SourceOfMoney = bankAccount.AccountName; financialOperationVm.FinancialOperation.DestinationOfMoney = subCategory.CategoryName; } if (financialOperationVm.FinancialOperation.IsIncome) { financialOperationVm.FinancialOperation.SourceOfMoney = subCategory.CategoryName; financialOperationVm.FinancialOperation.DestinationOfMoney = targetAccount.AccountName; } if (financialOperationVm.FinancialOperation.IsTransfer) { financialOperationVm.FinancialOperation.SourceOfMoney = bankAccount.AccountName; financialOperationVm.FinancialOperation.DestinationOfMoney = targetAccount.AccountName; } }
public FinancialOperationViewModel CreateViewModelWithAll(bool isExpense, bool isIncome, string userId) { FinancialOperationViewModel financialOperationVm = new FinancialOperationViewModel(); financialOperationVm.ListOfFinancialOperations = _unitOfWork.FinancialOperatiosRepo.GetWhereWithIncludes(fo => fo.Id > 0 && fo.UserId == userId && fo.IsExpense == isExpense && fo.IsIncome == isIncome && fo.IsTransfer == (!isExpense && !isIncome) , fo => fo.SubCategory, fo => fo.SubCategory.ParentCategory) .OrderByDescending(fo => fo.DateTime) .ToList(); financialOperationVm.FinancialOperation = new FinancialOperation() { IsExpense = isExpense, IsIncome = isIncome, IsTransfer = !isExpense && !isIncome, UserId = userId }; financialOperationVm.UserId = userId; AddSelectListsToViewModel(financialOperationVm, financialOperationVm.FinancialOperation.IsExpense); return(financialOperationVm); }
public ActionResult Create(FinancialOperationViewModel financialOperationVm) { var userId = User.Identity.GetUserId(); financialOperationVm.FinancialOperation.UserId = userId; financialOperationVm.UserId = userId; if (ModelState.IsValid) { _unitOfWork.FinancialOperationService.SetSourceOfMoneyAndDestinationOfMoney(financialOperationVm); if (financialOperationVm.FinancialOperation.IsTransfer && financialOperationVm.FinancialOperation.SourceOfMoney == financialOperationVm.FinancialOperation.DestinationOfMoney) { financialOperationVm.ErrorMessage = "Source account cannot be equal to Target account"; } else { _unitOfWork.FinancialOperatiosRepo.Create(financialOperationVm.FinancialOperation); _unitOfWork.BankAccountLogic.CalculateBalanceOfAllAccountsAndUpdateThem(userId, financialOperationVm.FinancialOperation); _unitOfWork.Complete(); return(RedirectToAction(_unitOfWork.FinancialOperationService.ChooseActionToGo(financialOperationVm))); } } _unitOfWork.FinancialOperationService.AddSelectListsToViewModel(financialOperationVm, financialOperationVm.FinancialOperation.IsExpense); return(View(financialOperationVm)); }
// GET: FinancialOperations - Incomes public ActionResult IncomesIndex() { bool IsExpense = false; bool IsIncome = true; var userId = User.Identity.GetUserId(); FinancialOperationViewModel financialOperationVm = _unitOfWork.FinancialOperationService.CreateViewModelWithAll(IsExpense, IsIncome, userId); return(View("Index", financialOperationVm)); }
// GET: FinancialOperations - HistoryChooseAccount public ActionResult HistoryChooseAccount() { FinancialOperationViewModel financialOperationVm = new FinancialOperationViewModel(); var userId = User.Identity.GetUserId(); financialOperationVm.UserId = userId; _unitOfWork.FinancialOperationService.AddSelectListsToViewModel(financialOperationVm, true); return(View("HistoryChooseAccount", financialOperationVm)); }
// GET: FinancialOperations - History public ActionResult History(FinancialOperationViewModel financialOperationVm) { if (financialOperationVm.FinancialOperation.BankAccountId == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } _unitOfWork.FinancialOperationService.FulfillHistoryViewModelWithFinancialOperationAndListOfFinancialOperations(financialOperationVm); return(View("History", financialOperationVm)); }
public string ChooseActionToGo(FinancialOperationViewModel financialOperationVm) { if (financialOperationVm.FinancialOperation.IsExpense) { return("ExpensesIndex"); } if (financialOperationVm.FinancialOperation.IsIncome) { return("IncomesIndex"); } return("TransfersIndex"); }
public void AddSelectListsToViewModel(FinancialOperationViewModel financialOperationVm, bool isExpense) { var bankaccounts = _unitOfWork.BankAccountRepo.GetWhere(ba => ba.Id > 0 && ba.UserId == financialOperationVm.UserId); var subcategories = _unitOfWork.CategoryRepo. GetWhere(sc => sc.Id > 0 && sc.UserId == financialOperationVm.UserId && sc.IsExpense == isExpense && sc.IsIncome == !isExpense && sc.ParentCategoryId != null); var categories = _unitOfWork.CategoryRepo. GetWhere(sc => sc.Id > 0 && sc.UserId == financialOperationVm.UserId && sc.IsExpense == isExpense && sc.IsIncome == !isExpense && sc.ParentCategory == null); financialOperationVm.SelectListOfBankAccounts = new SelectList(bankaccounts, "Id", "AccountName"); financialOperationVm.SelectListOfSubCategories = new SelectList(subcategories, "Id", "CategoryName"); financialOperationVm.ListOfCategories = categories; }
// GET: FinancialOperations/Details/5 public ActionResult Details(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } FinancialOperationViewModel financialOperationVm = new FinancialOperationViewModel(); financialOperationVm.FinancialOperation = _unitOfWork.FinancialOperatiosRepo.GetWhereWithIncludes(fo => fo.Id == id, fo => fo.SubCategory, fo => fo.SubCategory.ParentCategory).FirstOrDefault(); if (financialOperationVm.FinancialOperation == null) { return(HttpNotFound()); } return(View(financialOperationVm)); }
// GET: FinancialOperations/Delete/5 public ActionResult Delete(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } FinancialOperationViewModel financialOperationVm = new FinancialOperationViewModel(); financialOperationVm.FinancialOperation = _unitOfWork.FinancialOperatiosRepo.GetWhere(fo => fo.Id == id).FirstOrDefault(); if (financialOperationVm.FinancialOperation == null) { return(HttpNotFound()); } return(View(financialOperationVm)); }
public ActionResult Edit(FinancialOperationViewModel financialOperationVm) { if (ModelState.IsValid) { _unitOfWork.FinancialOperationService.SetSourceOfMoneyAndDestinationOfMoney(financialOperationVm); var userId = User.Identity.GetUserId(); financialOperationVm.FinancialOperation.UserId = userId; _unitOfWork.FinancialOperatiosRepo.Update(financialOperationVm.FinancialOperation); _unitOfWork.BankAccountLogic.CalculateBalanceOfAllAccountsAndUpdateThem(userId, financialOperationVm.FinancialOperation); _unitOfWork.Complete(); return(RedirectToAction(_unitOfWork.FinancialOperationService.ChooseActionToGo(financialOperationVm))); } _unitOfWork.FinancialOperationService.AddSelectListsToViewModel(financialOperationVm, financialOperationVm.FinancialOperation.IsExpense); return(View(financialOperationVm)); }
public ActionResult DeleteConfirmed(int id) { FinancialOperationViewModel financialOperationVm = new FinancialOperationViewModel { FinancialOperation = _unitOfWork.FinancialOperatiosRepo .GetWhereWithIncludes(fo => fo.Id == id) .FirstOrDefault() }; _unitOfWork.FinancialOperatiosRepo.Delete(financialOperationVm.FinancialOperation); var userId = User.Identity.GetUserId(); _unitOfWork.Complete(); _unitOfWork.BankAccountLogic.CalculateBalanceOfAllAccountsAndUpdateThem(userId); _unitOfWork.Complete(); return(RedirectToAction(_unitOfWork.FinancialOperationService.ChooseActionToGo(financialOperationVm))); }
// GET: FinancialOperations/Edit/5 public ActionResult Edit(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } FinancialOperationViewModel financialOperationVm = new FinancialOperationViewModel(); financialOperationVm.FinancialOperation = _unitOfWork.FinancialOperatiosRepo.GetWhere(fo => fo.Id == id).FirstOrDefault(); if (financialOperationVm.FinancialOperation == null) { return(HttpNotFound()); } var userId = User.Identity.GetUserId(); financialOperationVm.UserId = userId; _unitOfWork.FinancialOperationService.AddSelectListsToViewModel(financialOperationVm, financialOperationVm.FinancialOperation.IsExpense); return(View(financialOperationVm)); }
public FinancialOperationViewModel FulfillHistoryViewModelWithFinancialOperationAndListOfFinancialOperations(FinancialOperationViewModel financialOperationVm) { financialOperationVm.FinancialOperation.BankAccount = _unitOfWork.BankAccountRepo .GetWhere(ba => ba.Id == financialOperationVm.FinancialOperation.BankAccountId).FirstOrDefault(); financialOperationVm.ListOfFinancialOperations = new List <FinancialOperation>(); List <FinancialOperation> expensesList = _unitOfWork.FinancialOperatiosRepo.GetWhere(fo => fo.BankAccountId == financialOperationVm.FinancialOperation.BankAccountId); expensesList.ForEach(expense => expense.AmountOfMoney *= (-1)); List <FinancialOperation> incomesList = _unitOfWork.FinancialOperatiosRepo .GetWhere(fo => fo.TargetBankAccountId == financialOperationVm.FinancialOperation.BankAccountId); financialOperationVm.ListOfFinancialOperations.AddRange(expensesList); financialOperationVm.ListOfFinancialOperations.AddRange(incomesList); financialOperationVm.ListOfFinancialOperations = financialOperationVm.ListOfFinancialOperations.OrderByDescending(fo => fo.DateTime.Date).ToList(); return(financialOperationVm); }