/// <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();
            }
        }
示例#2
0
        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.");
        }
示例#3
0
        /// <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);
        }
示例#4
0
        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.");
        }