Beispiel #1
0
        public async Task <IActionResult> Deposit()
        {
            var accountId = Convert.ToInt32(HttpContext.Session.GetString(SessionKeyAccountId));
            var account   = await _context.Accounts
                            .AsNoTracking()
                            .SingleOrDefaultAsync(x => x.AccountID == accountId);

            ViewModels.Deposit depositViewModel = new ViewModels.Deposit();
            depositViewModel.AccountNumber = account.AccountNumber;
            depositViewModel.Balance       = account.Balance;
            return(View(depositViewModel));
        }
Beispiel #2
0
        public async Task <IActionResult> Deposit(ViewModels.Deposit depositViewModel)
        {
            try
            {
                var accountName = HttpContext.Session.GetString(SessionKeyAccountName);
                var accountId   = Convert.ToInt32(HttpContext.Session.GetString(SessionKeyAccountId));

                if (ModelState.IsValid)
                {
                    Transaction transaction = new Transaction();
                    transaction.AccountID       = accountId;
                    transaction.Amount          = depositViewModel.Amount;
                    transaction.TransactionType = Transaction.TransactionTypeEnum.Deposit;

                    _context.Add(transaction);
                    var commitResult = await _context.SaveChangesAsync();

                    if (commitResult > 0)
                    {
                        var account = await _context.Accounts
                                      .AsNoTracking()
                                      .SingleOrDefaultAsync(x => x.AccountID == transaction.AccountID);

                        account.Balance += transaction.Amount;
                        _context.Update(account);
                        await _context.SaveChangesAsync();
                    }
                    return(RedirectToAction("Index", "Home"));
                }
            }
            catch (DbUpdateException /* ex */)
            {
                //Log the error (uncomment ex variable name and write a log.
                ModelState.AddModelError("", "Unable to save changes. " +
                                         "Try again, and if the problem persists " +
                                         "see your system administrator.");
            }
            return(null);
        }
        public async Task <IActionResult> Index()
        {
            try
            {
                var accountId = Convert.ToInt32(HttpContext.Session.GetString(SessionKeyAccountId));
                var account   = await _context.Accounts
                                .AsNoTracking()
                                .SingleOrDefaultAsync(x => x.AccountID == accountId);

                ViewModels.Deposit depositViewModel = new ViewModels.Deposit();
                depositViewModel.AccountNumber = account.AccountNumber;
                depositViewModel.Balance       = account.Balance;
                return(View(depositViewModel));
            }
            catch (DbUpdateException /* ex */)
            {
                //Log the error (uncomment ex variable name and write a log.
                ModelState.AddModelError("", "Unable to save changes. " +
                                         "Try again, and if the problem persists " +
                                         "see your system administrator.");
            }
            return(null);
        }