public string OpenAccount(int clientsId, decimal balance, int bonusPoints, bool isClosed, BankAccountType accountType) { IbanGenerator iban = new IbanGenerator(); string accountIban = iban.IbanGerate(); var account = CreateAccount(accountIban, clientsId, balance, bonusPoints, isClosed, accountType); Repository.Add(account.ToBankAccountDto()); return(accountIban); }
public void AddAccountToUser(Account account) { string userId = httpContextAccessor.HttpContext.User .FindFirst(ClaimTypes.NameIdentifier).Value; account.IBAN = IbanGenerator.Generate(); BankUser userFromDb = this.context.Users.Find(userId); userFromDb.Accounts.Add(account); this.context.SaveChanges(); }
public string AddBankAccount(NewBankAccountModel newBankAccountModel) { var accountRepo = new AccountsRepo(); var accountNumber = BankAccountNumberGenerator.GetUniqueAccountNumber(); newBankAccountModel.AccountNumber = accountNumber; newBankAccountModel.Iban = IbanGenerator.GenerateIban(accountNumber); newBankAccountModel.Expired = false; var withdrawnAccount = accountRepo.GetWhitdrawnAccount(newBankAccountModel.Username_Fk, newBankAccountModel.WithdrawnAccountNo); if (withdrawnAccount == null) { return("Invalid Withdrawn Account"); } if (newBankAccountModel.FriendlyName.Length <= 0) { return("A New Bank Account Must Be Given A Friendly Name"); } if (newBankAccountModel.AmountWithdrawn <= 10) { return("A New Bank Account Must Have Some Funds Withdrawn (10 Minimum)"); } if (!IsSufficientFunds(withdrawnAccount, newBankAccountModel.AmountWithdrawn)) { return("Not Enough Funds (Withdrawn Account)"); } if (newBankAccountModel.Currency_Fk == withdrawnAccount.Currency_Fk) { withdrawnAccount.Balance -= newBankAccountModel.AmountWithdrawn; newBankAccountModel.Balance += newBankAccountModel.AmountWithdrawn; accountRepo.UpdateAccount(withdrawnAccount); } if (newBankAccountModel.Currency_Fk != withdrawnAccount.Currency_Fk) { withdrawnAccount.Balance -= newBankAccountModel.AmountWithdrawn; newBankAccountModel.Balance += ConvertCurrency(withdrawnAccount.Currency_Fk, newBankAccountModel.Currency_Fk, newBankAccountModel.AmountWithdrawn); accountRepo.UpdateAccount(withdrawnAccount); } newBankAccountModel.DateOpened = DateTime.Now; newBankAccountModel.DateExpired = newBankAccountModel.DateOpened.AddMonths(newBankAccountModel.DurationMonth); var newBankAccount = BankAccountModelToEntity(newBankAccountModel); accountRepo.AddBankAccount(newBankAccount); return("Success"); }