public async Task <IActionResult> MakeDepositAccountFormAction(IndexModel model) { decimal amount; if (!decimal.TryParse(model.DepositAmount, out amount)) { model.ActivityMessage = "Deposit operation failed: invalid amount."; model.ActivityMessageError = true; } AccountActivityResult result = await _accDatabaseManager.MakeDepositAsync(model.DepositAccountName, model.DepositCurrency, amount, User.Identity.Name); if (model == null) { model = new IndexModel(); } if (result == AccountActivityResult.AccountNotSelected) { model.ActivityMessage = "Deposit operation failed: account not selected."; model.ActivityMessageError = true; } if (result == AccountActivityResult.Success) { model.ActivityMessage = $"Deposit operation completed."; } await _logManager.WriteAsync(User.Identity.Name, $"Deposit: {model.DepositAmount} {model.DepositCurrency} added to '{model.DepositAccountName}' account."); model.Accounts = await _accDatabaseManager.GetAccountsAsync(User.Identity.Name); return(View(nameof(HomeController.Index), model)); }
public async Task <IActionResult> WithdrawFromAccountFormAction(IndexModel model) { decimal amount; if (!decimal.TryParse(model.Withdraw.Amount, out amount)) { if (model == null) { model = new IndexModel(); } model.Accounts = await _accDatabaseManager.GetAccountsAsync(User.Identity.Name); return(View(nameof(HomeController.Index), model)); } AccountActivityResult result = await _accDatabaseManager.WithdrawAsync(model.Withdraw.AccountName, amount, User.Identity.Name); if (model == null) { model = new IndexModel(); } model.Accounts = await _accDatabaseManager.GetAccountsAsync(User.Identity.Name); if (result == AccountActivityResult.AccountNotSelected) { model.ActivityMessage = "Withdraw operation failed: account not selected."; model.ActivityMessageError = true; } if (result == AccountActivityResult.NotEnoughFunds) { model.ActivityMessage = $"Withdraw operation failed: not enough funds on '{model.Withdraw.AccountName}' account."; model.ActivityMessageError = true; } if (result == AccountActivityResult.Success) { string curr = await _accDatabaseManager.GetAccountCurrencyAsync(model.Withdraw.AccountName, User.Identity.Name); await _logManager.WriteAsync(User.Identity.Name, $"{model.Withdraw.Amount} {curr} withdrawed from '{model.Withdraw.AccountName}' account."); model.ActivityMessage = $"Withdraw operation completed."; } return(View(nameof(HomeController.Index), model)); }