public async Task <IActionResult> CreateAccount(CreateBankAccountModel model) { var customerId = User.Identity.Name; var bankAccount = await _bankRepo.CreateAccount(model, customerId); var bankModel = _mapper.Map <BankAccountModel>(bankAccount); await _repo.Add(bankAccount); return(Ok(bankAccount)); }
public async Task <IActionResult> CreateLoan([FromBody] CreateLoanModel model) { var loan = await _repo.GetByIdWithInclude <Loan>(model.LoanId, o => o.LoanType); var customer = await _repo.GetWithWhere <Customer>(o => o.CNP == model.CustomerCNP); var create_model = new CreateBankAccountModel { AccountType = 4, InitialDeposit = 10000, }; var bankAccount = await _bankRepo.CreateAccount(create_model, customer.UserId.ToString()); bankAccount.InterestRate = loan.InterestRate; bankAccount.Period = loan.Period; var bank = await _repo.Add <BankAccount>(bankAccount); return(Ok(bank)); }
public virtual async Task <IActionResult> ApiV1UsersCreate( [FromBody] CreateUserViewModel user_data ) { if (user_data == null || string.IsNullOrEmpty(user_data.Username) || string.IsNullOrEmpty(user_data.BankId) || string.IsNullOrEmpty(user_data.AccountNumber) ) { return(ApiResponseUtility.ApiError( HttpStatusCode.BadRequest, "All user_data fields must be supplied" )); } if (!Validation.AccountNumberIsValid(user_data.AccountNumber)) { return(ApiResponseUtility.ApiError( HttpStatusCode.BadRequest, $"Account number '{user_data.AccountNumber}' is invalid" )); } if (!_connectionManager.GetRegisteredBankIds().Contains(user_data.BankId)) { return(ApiResponseUtility.ApiError( HttpStatusCode.BadRequest, $"Banking service '{user_data.BankId}' is not available" )); } var existingUser = _userRepository.GetUserByUsername(user_data.Username); if (existingUser != null) { return(ApiResponseUtility.ApiError( HttpStatusCode.Conflict, $"User '{user_data.Username}' already exists" )); } var existingAccount = _accountRepository.GetAccountByBankIdAndAccountNumber( user_data.BankId, user_data.AccountNumber ); if (existingAccount != null) { return(ApiResponseUtility.ApiError( HttpStatusCode.Conflict, $"Bank account '{user_data.AccountNumber}' is already registered" )); } // when we are registering a new account, we go directly to the bank connection to verify the account, // as it will not yet exist in our system var bankConnection = _connectionManager.CreateConnection(user_data.BankId); var accountResult = await bankConnection.GetAccountDetails(user_data.AccountNumber); if (!accountResult.Success) { var error = new ErrorViewModel { Status = accountResult.StatusCode, Message = accountResult.Error.ErrorMessage, ErrorCode = accountResult.Error.ErrorCode }; if (accountResult.StatusCode == (int)HttpStatusCode.NotFound) { error.Message = $"Account number '{user_data.AccountNumber}' does not exist at bank {user_data.BankId}"; } return(new ObjectResult(error) { StatusCode = accountResult.StatusCode }); } var appUser = _userRepository.CreateUser(user_data.Username); _accountRepository.CreateAccount(appUser.Id, user_data.BankId, user_data.AccountNumber); var model = ViewModelUtility.CreateUserViewModel(appUser); return(Ok(model)); }
public void CreateAccount(decimal balance, int limit, string login) { _bankAccountRepository.CreateAccount(balance, limit, login); }