Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        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));
        }