public async Task <IActionResult> Put(Transactions model) { if (ModelState.IsValid) { Account account = await _context.Accounts.FirstOrDefaultAsync( a => a.User.Email == User.Identity.Name); account.Balance = account.Balance + model.Sum; account.Transactions = new List <Models.Transaction>() { new Transaction { Sum = model.Sum, ReceiverAccountId = account.BalanceName, SenderAccountId = "Terminal", Accounts = account } }; _context.Update(account); await _context.SaveChangesAsync(); return(RedirectToAction("Index", "Home")); } return(View(model)); }
public async Task <IActionResult> Withdraw(Transactions model) { if (ModelState.IsValid) { Account account = await _context.Accounts.FirstOrDefaultAsync( a => a.User.Email == User.Identity.Name); if (account.Balance >= model.Sum) { account.Balance = account.Balance - model.Sum; account.Transactions = new List <Models.Transaction>() { new Transaction { Sum = model.Sum, ReceiverAccountId = account.BalanceName, SenderAccountId = "ATM", Accounts = account } }; _context.Update(account); await _context.SaveChangesAsync(); return(RedirectToAction("Index", "Home")); } else { ModelState.AddModelError("", "There is not enough money in your account"); } } return(View(model)); }
public async Task <IActionResult> SendToAnotherAccount(Transactions model) { if (ModelState.IsValid) { Account accountSender = await _context.Accounts.FirstOrDefaultAsync( a => a.User.Email == User.Identity.Name); Account accountReceiver = await _context.Accounts.FirstOrDefaultAsync( a => a.BalanceNumber == model.BalanceName); if (accountSender.Balance >= model.Sum) { accountSender.Balance = accountSender.Balance - model.Sum; accountReceiver.Balance = accountReceiver.Balance + model.Sum; accountSender.Transactions = new List <Transaction>() { new Transaction() { ReceiverAccountId = accountReceiver.BalanceName, SenderAccountId = accountSender.BalanceName, Sum = model.Sum, } }; _context.Update(accountReceiver); _context.Update(accountSender); await _context.SaveChangesAsync(); return(RedirectToAction("Index", "Home")); } ModelState.AddModelError("", "There is not enough money in your account"); } ViewData["BalanceName"] = new SelectList( _context.Accounts.Where(a => a.User.Email != User.Identity.Name), "BalanceNumber", "BalanceName" ); return(View(model)); }