private void SetCreditLimit(User user) { if (user.Client.Name == "VeryImportantClient") { // Skip credit check user.HasCreditLimit = false; } else { // Do credit check user.HasCreditLimit = true; using (var userCreditService = new UserCreditServiceClient()) { var creditLimit = userCreditService.GetCreditLimit(user.Firstname, user.Surname, user.DateOfBirth); if (user.Client.Name == "ImportantClient") { creditLimit = creditLimit * 2; //double credit limit } user.CreditLimit = creditLimit; } } }
public bool AddUser(string firname, string surname, string email, DateTime dateOfBirth, int clientId) { if (string.IsNullOrEmpty(firname) || string.IsNullOrEmpty(surname)) { return(false); } if (!email.Contains("@") && !email.Contains(".")) { return(false); } var now = DateTime.Now; int age = now.Year - dateOfBirth.Year; if (now.Month < dateOfBirth.Month || (now.Month == dateOfBirth.Month && now.Day < dateOfBirth.Day)) { age--; } if (age < 21) { return(false); } var clientRepository = new ClientRepository(); var client = clientRepository.GetById(clientId); var user = new User { Client = client, DateOfBirth = dateOfBirth, EmailAddress = email, Firstname = firname, Surname = surname }; if (client.Name == "VeryImportantClient") { // Skip credit check user.HasCreditLimit = false; } else if (client.Name == "ImportantClient") { // Do credit check and double credit limit user.HasCreditLimit = true; using (var userCreditService = new UserCreditServiceClient()) { var creditLimit = userCreditService.GetCreditLimit(user.Firstname, user.Surname, user.DateOfBirth); creditLimit = creditLimit * 2; user.CreditLimit = creditLimit; } } else { // Do credit check user.HasCreditLimit = true; using (var userCreditService = new UserCreditServiceClient()) { var creditLimit = userCreditService.GetCreditLimit(user.Firstname, user.Surname, user.DateOfBirth); user.CreditLimit = creditLimit; } } if (user.HasCreditLimit && user.CreditLimit < 500) { return(false); } UserDataAccess.AddUser(user); return(true); }