public static Account ToAccount(this AccountDto accountDto, IAccountFactory accountFactory)
        {
            Account account = accountFactory.GetInstance(accountDto.AccountType);

            account.AccountNumber = accountDto.AccountNumber;
            account.Owner         = accountDto.Owner.ToAccountOwner();
            account.Balance       = accountDto.Balance;
            account.BonusPoints   = accountDto.BonusPoints;
            Enum.TryParse <AccountStatus>(accountDto.Status, out AccountStatus status);
            account.Status = status;

            return(account);
        }
Exemplo n.º 2
0
        public void OpenAccount(string ownerName, string accountType, IAccountNumberCreateService numberCreator)
        {
            if (string.IsNullOrEmpty(ownerName))
            {
                throw new ArgumentException("Argument is null or empty", nameof(ownerName));
            }

            if (numberCreator is null)
            {
                throw new ArgumentNullException(nameof(numberCreator));
            }

            var account = accountFactory.GetInstance(accountType);

            account.AccountNumber = numberCreator.GetNextNumber();
            account.Owner         = new AccountOwner()
            {
                FirstName = ownerName
            };
            account.Status = AccountStatus.Active;

            repository.Create(account.ToAccountDto());
        }