/// <summary> /// Add new account to repository. /// </summary> /// <param name="name"> /// Holder name. /// </param> /// <param name="email"> /// Holder e-mail. /// </param> /// <param name="accountFactory"> /// Factory for current account status. /// </param> /// <exception cref="ArgumentNullException"> /// Throws if name or e-mail is null. /// </exception>. public override void NewAccount(string name, string email, AbstractAccountFactory accountFactory) { if (string.IsNullOrEmpty(name)) { throw new ArgumentNullException(nameof(name)); } if (string.IsNullOrEmpty(email)) { throw new ArgumentNullException(nameof(email)); } AbstractAccount newAccount = accountFactory.GetNewAccount(new NumGenerator()); newAccount.Name = name; newAccount.Email = email; repository.Save(newAccount); }
/// <summary> /// Return new bank account. /// </summary> /// <param name="name"> /// Holder name. /// </param> /// <param name="email"> /// Holder email. /// </param> /// <param name="accountFactory"> /// Factory for current account status. /// </param> public abstract void NewAccount(string name, string email, AbstractAccountFactory accountFactory);