public IAddCustomerResponse AddCustomer(IAddCustomerRequest request) { var isCustomerAdded = this.repository.AddCustomer(request.FirstName, request.SurName, request.Email, request.DateOfBirth, request.CompanyId); var response = new AddCustomerResponse(request) { IsCustomerAdded = isCustomerAdded }; return(response); }
public IAddCustomerResponse AddCustomer(IAddCustomerRequest request) { var response = new AddCustomerResponse(request); var company = this.companyRepository.GetById(request.CompanyId); var customer = new Customer { Company = company, DateOfBirth = request.DateOfBirth, EmailAddress = request.Email, Firstname = request.FirstName, Surname = request.SurName }; if (company.Name == "VeryImportantClient") { // Skip credit check customer.HasCreditLimit = false; } else if (company.Name == "ImportantClient") { // Do credit check and double credit limit customer.HasCreditLimit = true; using (var customerCreditService = new CustomerCreditServiceClient()) { var creditLimit = customerCreditService.GetCreditLimit(customer.Firstname, customer.Surname, customer.DateOfBirth); creditLimit = creditLimit * 2; customer.CreditLimit = creditLimit; } } else { // Do credit check customer.HasCreditLimit = true; using (var customerCreditService = new CustomerCreditServiceClient()) { var creditLimit = customerCreditService.GetCreditLimit(customer.Firstname, customer.Surname, customer.DateOfBirth); customer.CreditLimit = creditLimit; } } if (customer.HasCreditLimit && customer.CreditLimit < 500) { response.IsCustomerAdded = false; return(response); } CustomerDataAccess.AddCustomer(customer); response.IsCustomerAdded = true; return(response); }
public IAddCustomerResponse AddCustomer(IAddCustomerRequest request) { if (null == request) { throw new ArgumentNullException(nameof(IAddCustomerRequest)); } if (string.IsNullOrWhiteSpace(request.FirstName)) { throw new ArgumentOutOfRangeException(nameof(request.FirstName)); } if (string.IsNullOrWhiteSpace(request.SurName)) { throw new ArgumentOutOfRangeException(nameof(request.SurName)); } if (string.IsNullOrWhiteSpace(request.SurName)) { throw new ArgumentOutOfRangeException(nameof(request.SurName)); } if (string.IsNullOrWhiteSpace(request.Email)) { throw new ArgumentOutOfRangeException(nameof(request.SurName)); } var now = DateTime.Now; var dob = request.DateOfBirth; int age = now.Year - dob.Year; if (now.Month < dob.Month || (now.Month == dob.Month && now.Day < dob.Day)) { age--; } if (age < 21) { throw new ArgumentOutOfRangeException(nameof(request.DateOfBirth)); } return(this.service.AddCustomer(request)); }
public AddCustomerResponse(IAddCustomerRequest request) { this.OriginalRequest = request; }