public void SaveBankAccountMovement(string userId, long bankAccountId, BankAccountMovement bankAccountMovement) { bankAccountMovement.BankAccount = this.context.BankAccounts.Single(x => x.Id == bankAccountId && x.ApplicationUser.Id == userId); this.context.Entry(bankAccountMovement.BankAccount).State = EntityState.Unchanged; if (bankAccountMovement.Categories != null && bankAccountMovement.Categories.Any()) { bankAccountMovement.Categories.ForEach(x => { x.BankAccountMovement = bankAccountMovement; x.Category = x.Category ?? context.Categories.First(q => q.Id == x.CategoryId); }); } if (bankAccountMovement.Id == 0 && bankAccountMovement.TotalBalanceAfterMovement == 0) { var lstMov = this.GetBankAccountMovements(userId, bankAccountId, 1, SortOrder.Ascending).FirstOrDefault(); if (lstMov != null) { bankAccountMovement.TotalBalanceAfterMovement = lstMov.TotalBalanceAfterMovement; } bankAccountMovement.TotalBalanceAfterMovement += bankAccountMovement.Amount; } this.context.Entry(bankAccountMovement).State = bankAccountMovement.Id == 0 ? EntityState.Added : EntityState.Modified; }
public void SaveBankAccountMovement(string userId, long bankAccountId, BankAccountMovement bankAccountMovement) { if (myFinanceRepo.ExistsBankAccount(bankAccountId, userId)) { myFinanceRepo.SaveBankAccountMovement(userId, bankAccountId, bankAccountMovement); myFinanceRepo.CommitChanges(); } }
public IActionResult SetCategoriesToBankAccount(int bankAccountId, int id) { BankAccountMovement movement = _myFinanceService.GetBankAccountMovement(User.GetUserId(), bankAccountId, id); CategoriesAccountMovementViewModel viewModel = Mapper.Map <CategoriesAccountMovementViewModel>(movement); List <Category> categories = _myFinanceService.GetCategories(User.GetUserId()); viewModel.SetAvailableCategories(Mapper.Map <List <Category>, List <CategoryViewModel> >(categories)); return(View(viewModel)); }
public IActionResult SetBankAccountMovementsToCategory(int bankAccountId, CategoriesAccountMovementViewModel lvm) { if (ModelState.IsValid) { BankAccountMovement bankAccountMovement = Mapper.Map <BankAccountMovement>(lvm); _myFinanceService.SetCategoriesToBankAccountMovement(User.GetUserId(), bankAccountMovement.Id, lvm.SelectedCategories); } return(new JsonResult("")); }
public IActionResult SetCategoriesToBankAccount(int bankAccountId, CategoriesAccountMovementViewModel lvm) { if (ModelState.IsValid) { BankAccountMovement bankAccountMovement = Mapper.Map <BankAccountMovement>(lvm); _myFinanceService.SetCategoriesToBankAccountMovement(User.GetUserId(), bankAccountMovement.Id, lvm.SelectedCategories); return(RedirectToAction(nameof(ListMovements), new { bankAccountId })); } return(View(lvm)); }
public bool ExistsBankAccountMovements(long bankAccountId, BankAccountMovement item) { return(this.context.BankAccountMovements.Include(x => x.BankAccount).Any(x => x.GetHashCode() == item.GetHashCode() && x.BankAccount.Id == bankAccountId)); }
public void DeleteBankAccountMovement(string userId, long bankAccountId, BankAccountMovement bankAccountMovement) { var elementsToRemove = this.context.BankAccountMovements.Where(x => x.BankAccount.Id == bankAccountId && x.BankAccount.ApplicationUser.Id == userId && x.Id == bankAccountMovement.Id); this.context.BankAccountMovements.RemoveRange(elementsToRemove); }
private decimal UpdateLastKnownValue(BankAccount bankAccount, decimal lastKnownValue, BankAccountMovement movement) { if (movement != default(BankAccountMovement)) { lastKnownValue = movement.TotalBalanceAfterMovement; } else if (bankAccount.Movements.Count > 0 && lastKnownValue == 0) { lastKnownValue = bankAccount.Movements.OrderBy(m => m.ValueDate.Date).First().TotalBalanceAfterMovement; } return(lastKnownValue); }
public IActionResult AddOrEditMovement(int bankAccountId, int?id) { BankAccountMovement movement = id.HasValue ? _myFinanceService.GetBankAccountMovement(User.GetUserId(), bankAccountId, id.Value) : _myFinanceService.GetBankAccountMovementDefault(User.GetUserId(), bankAccountId); return(View(Mapper.Map <AccountMovementViewModel>(movement))); }
public IActionResult DeleteMovement(int bankAccountId, int?id) { BankAccountMovement movement = _myFinanceService.GetBankAccountMovement(User.GetUserId(), bankAccountId, id.Value); return(View(Mapper.Map <AccountMovementViewModel>(movement))); }
public void DeleteBankAccountMovement(string userId, long bankAccountId, BankAccountMovement bankAccountMovement) { myFinanceRepo.DeleteBankAccountMovement(userId, bankAccountId, bankAccountMovement); myFinanceRepo.CommitChanges(); }