public async Task <ActionResult> Withdraw(WithdrawModel model) { var creditCardDTO = await _creditCardService.GetCreditCard(model.CreditCardId); if (creditCardDTO.Balance < model.WithdrawalAmount) { return(RedirectToAction("Error", "Home", new { errorMessage = "Not enough money on your account " })); } await _operationRepository.AddOperation(model.CreditCardId, 2, $"{model.WithdrawalAmount}$ was withdrawn"); var balance = creditCardDTO.Balance - model.WithdrawalAmount; await _creditCardRepository.SetBalance(model.CreditCardId, balance); var reportModel = new ReportModel { CreditCardId = model.CreditCardId, WithdrawalAmount = model.WithdrawalAmount, Balance = balance, CreditCardNumber = creditCardDTO.CreditCardNumber, DateOfWithdrawal = DateTime.Now }; TempData["ReportModel"] = reportModel; return(RedirectToAction("Report")); }