public async Task <AccountDepositResults> Handle(AccountDepositCommand command, CancellationToken cancellationToken) { try { _logger.LogInformation("Deposit transaction process started."); //check account BalanceInquiryModel acctBalance = new BalanceInquiryModel(); acctBalance = await _accountService.BalanceInquiry(command.AcctId); if (acctBalance == null) { return(new AccountDepositResults { StatusCode = Convert.ToInt32(HttpStatusCode.OK), Message = Convert.ToString(HttpStatusCode.OK), MessageDetails = ManageAccountStatus.InvalidAccountNumber }); } AccountDepositModel acctDeposit = new AccountDepositModel(); acctDeposit.AcctId = command.AcctId; acctDeposit.TransactionType = command.TransactionType; acctDeposit.TransactionAmount = command.TransactionAmount; await _accountService.AccountDeposit(acctDeposit); return(new AccountDepositResults { StatusCode = Convert.ToInt32(HttpStatusCode.OK), Message = Convert.ToString(HttpStatusCode.OK), MessageDetails = ManageAccountStatus.DepositSuccess, TranId = acctDeposit.TranId }); } catch (Exception ex) { _logger.LogError("Error saving deposit transaction : {ExceptionMessage}", ex.ToString()); return(new AccountDepositResults { StatusCode = Convert.ToInt32(HttpStatusCode.InternalServerError), Message = Convert.ToString(HttpStatusCode.InternalServerError), MessageDetails = ManageAccountStatus.DepositFailed }); } }