public void OpenAccount(IAccountNumberGenerator gen, AccountHolder person, AccountType priveledge, AccountStatus status, int sum, int bonus, out string id) { BankAccount bankAccount; id = gen.GenerateAccountNumber(person + " " + priveledge); switch ((int)priveledge) { case 1: { bankAccount = new BaseAccount(int.Parse(id), person, status, priveledge, sum, bonus); break; } case 2: { bankAccount = new GoldAccount(int.Parse(id), person, status, priveledge, sum, bonus); break; } case 3: { bankAccount = new PlatinumAccount(int.Parse(id), person, status, priveledge, sum, bonus); break; } default: { bankAccount = new BaseAccount(int.Parse(id), person, status, priveledge, sum, bonus); break; } } bankAccount.Status = AccountStatus.Active; fakeRepository.Create(bankAccount); }
public void Handle(CreateAccount command) { var newAccountNumber = _accountNumberGenerator.GenerateAccountNumber(); var account = new Account(command.BusinessName, newAccountNumber, command.NewAccountId); _accountStore.Save(account); }
protected BankAccount(AccountHolder holder, IAccountNumberGenerator idGenerator, IMoneyAccuracyCalculator rounder = null) { ValidateOnNull(holder, nameof(holder)); this.Id = idGenerator.GenerateAccountNumber(); this.rounder = rounder ?? new OneHundredthAccuracy(); this.Holder = holder; }
/// <summary> /// Initializes a new instance of the <see cref="BankAccount"/> class. /// </summary> /// <param name="generator">Generator of ID.</param> /// <param name="holder">Account holder.</param> /// <param name="balance">Account's balance.</param> /// <param name="bonusPoints">Account's bonus points.</param> /// <param name="status">Status of account.</param> protected BankAccount( IAccountNumberGenerator generator, AccountHolder holder, AccountStatus status = AccountStatus.Base, decimal balance = 0m, int bonusPoints = 0) { this.Holder = holder; this.Balance = balance; this.BonusPoints = bonusPoints; this.Status = status; this.Id = generator.GenerateAccountNumber(this); // ?? throw new ArgumentNullException(nameof(generator)); }
public Account CreateAccount(string firstName, string secondName, string email, decimal balance, IAccountNumberGenerator generator, ICreateAccount creator) { //здесь подумать как передать какой именно аккаунт if (firstName == null) { throw new ArgumentNullException(nameof(firstName)); } if (secondName == null) { throw new ArgumentNullException(nameof(secondName)); } if (email == null) { throw new ArgumentNullException(nameof(email)); } string id = generator.GenerateAccountNumber(); Account acc = creator.Create(id, firstName, secondName, email, balance); repos.Save(acc); return(acc); }