Пример #1
0
        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;
        }
Пример #2
0
        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);
        }