/// <summary> /// Import Customers /// </summary> /// <param name="transaction"></param> public void ImportCustomers(out TransactionalInformation transaction) { transaction = new TransactionalInformation(); try { string importFileName = ConfigurationManager.AppSettings["CustomerImportData"]; System.IO.StreamReader csv_file = File.OpenText(importFileName); _customerDataService.CreateSession(); _customerDataService.BeginTransaction(); Boolean firstLine = true; int customerRecordsAdded = 0; while (csv_file.Peek() >= 0) { // read and add a line string line = csv_file.ReadLine(); string[] columns = line.Split('\t'); if (firstLine == false) { if (ImportCustomer(columns) == true) { customerRecordsAdded++; } } firstLine = false; } _customerDataService.CommitTransaction(true); csv_file.Close(); transaction.ReturnStatus = true; transaction.ReturnMessage.Add(customerRecordsAdded.ToString() + " provider successfully imported."); } catch (Exception ex) { _logger.Error(ex); transaction.ReturnMessage = new List <string>(); string errorMessage = ex.Message; transaction.ReturnStatus = false; transaction.ReturnMessage.Add(errorMessage); } finally { _customerDataService.CloseSession(); } }
public CustomerValidator(ICustomerDataService customerDataService, Customer customer) { if (customer.CustomerCode != null && customer.CustomerCode.Trim().Length > 0) { customerDataService.CreateSession(); List <Customer> customers = customerDataService.GetCustomers(customer.CustomerCode); customerDataService.CloseSession(); foreach (Customer existingCustomer in customers) { if (existingCustomer.CustomerID != customer.CustomerID) { _validCustomerCode = false; break; } } } RuleFor(a => a.CustomerCode).NotEmpty().WithMessage("Customer Code is required."); RuleFor(a => a.CompanyName).NotEmpty().WithMessage("Company Name is required."); RuleFor(a => a.CompanyVorname).NotEmpty().WithMessage("CompanyVorname is required."); RuleFor(a => a.Salutation).NotEmpty().WithMessage("Salutation is required."); RuleFor(a => a.Photo).NotEmpty().WithMessage("Photo is required."); RuleFor(a => a.AddressLine1).NotEmpty().WithMessage("AddressLine1 is required."); RuleFor(a => a.City).NotEmpty().WithMessage("City is required."); RuleFor(a => a.ZipCode).NotEmpty().WithMessage("ZipCode is required."); RuleFor(a => a.State).NotEmpty().WithMessage("State is required."); RuleFor(a => a.PhoneNumber2).NotEmpty().WithMessage("PhoneNumber2 is required."); RuleFor(a => a.EMail).NotEmpty().WithMessage("EMail is required."); RuleFor(a => a.CustomerCode).Must(ValidateDuplicateCustomerCode).WithMessage("Customer Code already exists."); }
/// <summary> /// Create Customer /// </summary> /// <param name="customer"></param> /// <param name="transaction"></param> /// <returns></returns> public Customer CreateCustomer(Customer customer, out TransactionalInformation transaction) { transaction = new TransactionalInformation(); try { CustomerBusinessRules customerBusinessRules = new CustomerBusinessRules(); ValidationResult results = customerBusinessRules.Validate(customer); bool validationSucceeded = results.IsValid; IList <ValidationFailure> failures = results.Errors; if (validationSucceeded == false) { transaction = ValidationErrors.PopulateValidationErrors(failures); return(customer); } _customerDataService.CreateSession(); _customerDataService.BeginTransaction(); _customerDataService.CreateCustomer(customer); _customerDataService.CommitTransaction(true); transaction.ReturnStatus = true; transaction.ReturnMessage.Add("Customer successfully created."); } catch (Exception ex) { string errorMessage = ex.Message; transaction.ReturnMessage.Add(errorMessage); transaction.ReturnStatus = false; } finally { _customerDataService.CloseSession(); } return(customer); }
public CustomerBusinessRules(ICustomerDataService customerDataService, Customer customer) { if (customer.CustomerCode != null && customer.CustomerCode.Trim().Length > 0) { customerDataService.CreateSession(); List <Customer> customers = customerDataService.GetCustomers(customer.CustomerCode); customerDataService.CloseSession(); foreach (Customer existingCustomer in customers) { if (existingCustomer.CustomerID != customer.CustomerID) { _validCustomerCode = false; break; } } } RuleFor(a => a.CustomerCode).NotEmpty().WithMessage("Customer Code is required."); RuleFor(a => a.CompanyName).NotEmpty().WithMessage("Company Name is required."); RuleFor(a => a.CustomerCode).Must(ValidateDuplicateCustomerCode).WithMessage("Customer Code already exists."); }