private void ApplyCreditLimits(Client client, User user) { var provider = _creditLimitProviderFactory.GetProviderByClientName(client.Name); var(hasCreditLimit, creditLimit) = provider.GetCreditLimits(user); user.HasCreditLimit = hasCreditLimit; user.CreditLimit = creditLimit; }
public bool AddUser(string firname, string surname, string email, DateTime dateOfBirth, string clientName) { if (!this.userValidator.HasValidName(firname, surname)) { return(false); } if (!this.userValidator.HasValidEmail(email)) { return(false); } if (!this.userValidator.Is21OrOlder(dateOfBirth)) { return(false); } var user = new User { Email = email, FirstName = firname, LastName = surname, DateOfBirth = dateOfBirth }; ICreditLimitProvider provider = creditLimitProviderFactory.GetProviderByClientName(clientName); var(hasCreditLimit, creditLimit) = provider.GetCreditLimit(user); user.HasCreditLimit = hasCreditLimit; user.CreditLimit = creditLimit; if (this.userValidator.HasCreditLimitLessThan500(user)) { return(false); } this.userRepository.AddUser(user); return(true); }