Beispiel #1
0
        private IEnumerable <CustomerRequestVO> BuildCustomerRequests(DataTable dataTable)
        {
            var customerRequests = new List <CustomerRequestVO>();

            foreach (DataRow currentRow in dataTable.Rows)
            {
                var customerRequest = new CustomerRequestVO
                {
                    Identity                   = (int)currentRow["CUS_REQ_I"],
                    Status                     = currentRow["PRS_STT"].ToString(),
                    BusinessEntityKey          = currentRow["BUS_UNT_ETY_NM"].ToString(),
                    TypeCode                   = currentRow["REQ_TYP_C"].ToString(),
                    ConsumerClassificationType = currentRow["CNSM_CLS"].ToString(),
                    CreatedDate                = (DateTime?)currentRow["CRT_S"],
                    CreatedUserId              = currentRow["CRT_UID"].ToString(),
                    CreatedProgramCode         = currentRow["CRT_PGM_C"].ToString(),
                    LastUpdatedDate            = (DateTime?)currentRow["LST_UPD_S"],
                    LastUpdatedUserId          = currentRow["LST_UPD_UID"].ToString(),
                    LastUpdatedProgramCode     = currentRow["LST_UPD_PGM_C"].ToString()
                };

                customerRequest.Appointments     = GetAppointmentsByCustomerRequest(customerRequest).ToList();
                customerRequest.Comments         = GetCommentsByCustomerRequest(customerRequest).ToList();
                customerRequest.ReferenceNumbers = GetReferenceNumbersByCustomerRequest(customerRequest).ToList();
                customerRequest.Stops            = GetStopsByCustomerRequest(customerRequest).ToList();
                customerRequests.Add(customerRequest);
            }
            return(customerRequests);
        }
Beispiel #2
0
        public void Create_SetsProject()
        {
            var customerRequest = new CustomerRequestVO {
                BusinessEntityKey = ProjectCodes.Southeastern
            };

            var actual = OrderFactory.GetInstance().Create(customerRequest);

            Assert.AreEqual(ProjectCodes.Southeastern, actual.Project);
        }
Beispiel #3
0
 public Order Create(CustomerRequestVO customerRequest) => customerRequest == null ? null : new Order
 {
     OrderNumber = SetOrderNumberFromReferenceNumber(customerRequest.ReferenceNumbers),
     Origin      = customerRequest.Stops.Any() ? SetOrderOriginFromStopVO(customerRequest.Stops.First()) : null,
     Destination = customerRequest.Stops.Any() ? SetOrderDestinationFromStopVO(customerRequest.Stops.Last()) : null,
     Scheduled   = customerRequest.Appointments.Count < 2 ? Scheduled.Empty : SetSchedule(customerRequest.Appointments.Last()),
     Project     = customerRequest.BusinessEntityKey ?? string.Empty,
     WorkType    = string.IsNullOrEmpty(customerRequest.ConsumerClassificationType) ? null : SetWorkTypeFromConsumerClassificationType(customerRequest.ConsumerClassificationType),
     LegType     = customerRequest.Stops.Any() ? SetLegtype(customerRequest.Stops.Last()) : LegType.Pickup,
 };
Beispiel #4
0
        public void Create_SetsWorkType()
        {
            var customerRequest = new CustomerRequestVO {
                ConsumerClassificationType = ConsumerClassificationTypes.Residential
            };

            var actual = OrderFactory.GetInstance().Create(customerRequest);

            Assert.AreEqual(WorkType.Home, actual.WorkType);
        }
Beispiel #5
0
        public void GetCustomerRequestByIdentity_ReturnsHydratedEntity()
        {
            var hydratedEntity = new CustomerRequestVO();

            MockHydrater.Setup(m => m.Hydrate(It.IsAny <DataTable>())).Returns(new List <CustomerRequestVO> {
                hydratedEntity
            });

            var actual = Target.GetCustomerRequestByIdentity(new CustomerRequestVO());

            Assert.AreEqual(hydratedEntity, actual);
        }
Beispiel #6
0
        public void Create_SetsScheduledEmptyWhenNotExists()
        {
            var customerRequest = new CustomerRequestVO();

            customerRequest.Appointments.Add(new AppointmentVO {
                FunctionType = AppointmentFunctionTypes.Target, AppointmentBegin = DateTime.Today, AppointmentEnd = DateTime.Today.AddDays(1)
            });

            var actual = OrderFactory.GetInstance().Create(customerRequest);

            Assert.AreEqual(Scheduled.Empty, actual.Scheduled);
        }
Beispiel #7
0
        public IEnumerable <ReferenceNumberVO> GetReferenceNumbersByCustomerRequest(CustomerRequestVO customerRequest)
        {
            const string selectQueryStatement = "SELECT * FROM REQ_ETY_REF_NBR WHERE ETY_NM = 'CUS_REQ' AND ETY_KEY_I = @CUS_REQ_I";

            var query = Database.CreateQuery(selectQueryStatement);

            query.AddParameter(customerRequest.Identity, CustomerRequestQueryParameters.Identity);
            var result = Database.RunSelect(query);

            var referenceNumberByCustomerRequest = Hydrater.Hydrate(result);

            return(referenceNumberByCustomerRequest);
        }
Beispiel #8
0
        public CustomerRequestVO GetCustomerRequestByIdentity(CustomerRequestVO customerRequest)
        {
            const string selectQueryStatement = "SELECT * FROM CUS_REQ WHERE CUS_REQ_I = @CUS_REQ_I";

            var query = Database.CreateQuery(selectQueryStatement);

            query.AddParameter(customerRequest.Identity, CustomerRequestQueryParameters.Identity);
            var result = Database.RunSelect(query);

            var customerRequestByIdentity = Hydrater.Hydrate(result).FirstOrDefault();

            return(customerRequestByIdentity);
        }
Beispiel #9
0
        public IEnumerable <CommentVO> GetCommentsByCustomerRequest(CustomerRequestVO customerRequest)
        {
            var          cus_Request          = customerRequest.Identity;
            const string selectQueryStatement = "SELECT * FROM REQ_ETY_CMM WHERE ETY_NM = 'CUS_REQ' AND ETY_KEY_I= @CUS_REQ_I";

            var query = Database.CreateQuery(selectQueryStatement);

            query.AddParameter(cus_Request, CustomerRequestQueryParameters.Identity);
            var result = Database.RunSelect(query);

            var CommentsByCustomerRequest = Hydrater.Hydrate(result);

            return(CommentsByCustomerRequest);
        }
Beispiel #10
0
        public void Create_SetsLegType()
        {
            var customerRequest = new CustomerRequestVO();

            customerRequest.Stops.Add(new StopVO {
                StopNumber = 1
            });
            customerRequest.Stops.Add(new StopVO {
                StopNumber = 2, RoleType = StopRoleTypes.InstallerPickup
            });

            var actual = OrderFactory.GetInstance().Create(customerRequest);

            Assert.AreEqual(LegType.Pickup, actual.LegType);
        }
Beispiel #11
0
        public void Create_SetsOrderNumber()
        {
            var customerRequest = new CustomerRequestVO();

            customerRequest.ReferenceNumbers.Add(new ReferenceNumberVO {
                ReferenceNumber = "1", ReferenceNumberType = ReferenceNumberTypes.PurchaseOrderNumber
            });
            customerRequest.ReferenceNumbers.Add(new ReferenceNumberVO {
                ReferenceNumber = "2", ReferenceNumberType = ReferenceNumberTypes.BillOfLading
            });

            var actual = OrderFactory.GetInstance().Create(customerRequest);

            Assert.AreEqual("2", actual.OrderNumber.ToString());
        }
Beispiel #12
0
        public IEnumerable <CustomerRequestVO> GetCustomerRequestsByReferenceNumber(CustomerRequestVO customerRequest)
        {
            var referenceNumber = customerRequest.ReferenceNumbers.First().ReferenceNumber;

            const string selectQueryStatement = "SELECT A.* FROM CUS_REQ A, REQ_ETY_REF_NBR B WHERE "
                                                + "B.ETY_NM = 'CUS_REQ' AND B.ETY_KEY_I = A.CUS_REQ_I AND "
                                                + "B.REF_NBR = @REF_NBR";
            var query = Database.CreateQuery(selectQueryStatement);

            query.AddParameter(referenceNumber, CustomerRequestQueryParameters.ReferenceNumber);
            var result = Database.RunSelect(query);

            var customerRequestsByReferenceNumber = Hydrater.Hydrate(result);

            return(customerRequestsByReferenceNumber);
        }
Beispiel #13
0
        public void GetCustomerRequestsByReferenceNumber_ReturnsHydratedEntities()
        {
            var hydratedEntities = new CustomerRequestVO();

            MockHydrater.Setup(m => m.Hydrate(It.IsAny <DataTable>())).Returns(new List <CustomerRequestVO> {
                hydratedEntities
            });

            var actual = Target.GetCustomerRequestsByReferenceNumber(new CustomerRequestVO {
                ReferenceNumbers = new List <ReferenceNumberVO> {
                    new ReferenceNumberVO {
                        ReferenceNumber = "1"
                    }
                }
            });

            Assert.AreEqual(hydratedEntities, actual.ElementAt(0));
        }
Beispiel #14
0
        private IEnumerable <StopVO> GetStopsByCustomerRequest(CustomerRequestVO customerRequest)
        {
            const string selectQueryStatement = "SELECT * FROM REQ_ETY_OGN WHERE ETY_NM = 'CUS_REQ' AND ETY_KEY_I = @CUS_REQ_I";

            using (SqlConnection defaultSqlConnection = new SqlConnection(DatabaseConnectionString))
            {
                defaultSqlConnection.Open();
                DataTable queryResult = new DataTable();

                using (SqlCommand queryCommand = new SqlCommand(selectQueryStatement, defaultSqlConnection))
                {
                    queryCommand.Parameters.AddWithValue("@CUS_REQ_I", customerRequest.Identity);
                    var sqlReader = queryCommand.ExecuteReader();
                    queryResult.Load(sqlReader);
                }
                var StopsByCustomerRequest = BuildStops(queryResult);
                return(StopsByCustomerRequest);
            }
        }
Beispiel #15
0
        public void Create_SetsDestination()
        {
            var customerRequest = new CustomerRequestVO();

            customerRequest.Stops.Add(new StopVO {
                StopNumber = 1, OrganizationName = "Southeastern", AddressLine1 = "1205 N Oak Street", AddressCityName = "Hammond", AddressStateCode = "LA", AddressPostalCode = "70402"
            });
            customerRequest.Stops.Add(new StopVO {
                StopNumber = 2, OrganizationName = "Bob Smith", AddressLine1 = "555 Somewhere Ave", AddressCityName = "Nowhere", AddressStateCode = "LA", AddressPostalCode = "76543"
            });

            var actual = OrderFactory.GetInstance().Create(customerRequest);

            Assert.IsInstanceOfType(actual.Destination, typeof(Customer));
            Assert.AreEqual("Bob Smith", actual.Destination.Name);
            Assert.AreEqual("555 Somewhere Ave", actual.Destination.Address.AddressLines[0]);
            Assert.AreEqual(String.Empty, actual.Destination.Address.AddressLines[1]);
            Assert.AreEqual("Nowhere", actual.Destination.Address.City);
            Assert.AreEqual("LA", actual.Destination.Address.StateCode);
            Assert.AreEqual("76543", actual.Destination.Address.PostalCode);
        }
Beispiel #16
0
        public IEnumerable <CustomerRequestVO> GetCustomerRequestsByReferenceNumberAndBusinessName(CustomerRequestVO customerRequest)
        {
            var referenceNumber = customerRequest.ReferenceNumbers.First().ReferenceNumber;
            var businessName    = customerRequest.BusinessEntityKey;

            const string selectQueryStatement = "SELECT A.* FROM CUS_REQ A, REQ_ETY_REF_NBR B WHERE "
                                                + "A.BUS_UNT_KEY_CH = @BUS_UNT_KEY_CH AND B.ETY_NM = 'CUS_REQ' "
                                                + "AND B.ETY_KEY_I = A.CUS_REQ_I AND B.REF_NBR = @REF_NBR";
            var query = Database.CreateQuery(selectQueryStatement);

            query.AddParameter(referenceNumber, CustomerRequestQueryParameters.ReferenceNumber);
            query.AddParameter(businessName, CustomerRequestQueryParameters.BusinessName);
            var result = Database.RunSelect(query);

            var customerRequestsByReferenceNumberAndBusinessName = Hydrater.Hydrate(result);

            return(customerRequestsByReferenceNumberAndBusinessName);
        }
 public IEnumerable <CustomerRequestVO> GetCustomerRequestsByReferenceNumberAndBusinessName(CustomerRequestVO customerRequest)
 {
     throw new NotImplementedException();
 }
 public CustomerRequestVO GetCustomerRequestByIdentity(CustomerRequestVO customerRequest)
 {
     throw new NotImplementedException();
 }