Ejemplo n.º 1
0
        public void GenerateEmailBodyForEstimationTeamTest()
        {
            DateTime dt = new DateTime(2011, 02, 14);

            CS_JobDescription csJobDescription = new CS_JobDescription()
                                                     {
                                                         Active = true,
                                                         NumberEmpties = 1,
                                                         NumberLoads = 2,
                                                         NumberEngines = 1
                                                     };

            CS_Division division = new CS_Division()
                                       {
                                           ID = 241,
                                           Active = true,
                                           Name = "005",
                                           Description = "White River, Ontario"
                                       };

            CS_JobDivision jobdivision = new CS_JobDivision()
                                          {
                                              Active = true,
                                              JobID = 243,
                                              DivisionID = 241,
                                              CS_Division = division
                                          };

            CS_Employee employee = new CS_Employee()
                                       {
                                           Active = true,
                                           Name = "Dcecilia",
                                           FirstName = "Test",
                                           DivisionID = 241
                                       };

            CS_Reserve reserve = new CS_Reserve()
                                     {
                                         Active = true,
                                         JobID = 243,
                                         Type = 2,
                                         CS_Employee = employee,
                                         DivisionID = 241
                                     };

            EntityCollection<CS_JobDivision> JobDivision = new EntityCollection<CS_JobDivision>();

            JobDivision.Add(jobdivision);

            CS_ScopeOfWork csScopeOfWork = new CS_ScopeOfWork()
            {
                Active = true,
                ScopeOfWork = "xxcxcxc",
                JobId = 243
            };

            EntityCollection<CS_Reserve> csReserves = new EntityCollection<CS_Reserve>();
            csReserves.Add(reserve);

            EntityCollection<CS_ScopeOfWork> scopeOfWorks = new EntityCollection<CS_ScopeOfWork>();
            scopeOfWorks.Add(csScopeOfWork);

            //Arrange
            FakeObjectSet<CS_Job> fakeJobObject = new FakeObjectSet<CS_Job>();
            fakeJobObject.AddObject
                (
                    new CS_Job()
                        {
                            ID = 243,
                            Active = true,
                            CreatedBy = "rbrandao",
                            CreationDate = DateTime.Now,
                            ModificationDate = DateTime.Now,
                            ModifiedBy = "Load",
                            Internal_Tracking = "000000025INT",
                            CS_ScopeOfWork = scopeOfWorks,
                            CS_JobDivision = JobDivision,
                            CS_Reserve = csReserves,
                            CS_CustomerInfo = new CS_CustomerInfo()
                                                  {
                                                      Active = true,
                                                      CS_Customer = new CS_Customer()
                                                                        {
                                                                            Active = true,
                                                                            Name = "Test Customer"
                                                                        },
                                                      CS_Division = division
                                                  },
                            CS_JobInfo = new CS_JobInfo()
                                             {
                                                 Active = true,
                                                 CS_JobAction = new CS_JobAction()
                                                                    {
                                                                        Active = true,
                                                                        Description = "Environmental Work, General - Undefined Scope of Work"
                                                                    },
                                                 CS_JobType = new CS_JobType()
                                                                    {
                                                                        Active = true,
                                                                        Description = "A"
                                                                    },
                                                 CS_PriceType = new CS_PriceType()
                                                 {
                                                     Active = true,
                                                     Acronym = "P"
                                                 },
                                                CS_Job_JobStatus = new EntityCollection<CS_Job_JobStatus>()
                                                                    {
                                                                        new CS_Job_JobStatus()
                                                                        {
                                                                            JobStatusId = (int)Globals.JobRecord.JobStatus.Bid,
                                                                            JobStartDate = new DateTime(2011,02,14),
                                                                            Active = true
                                                                        }
                                                                    }

                                             },
                            CS_JobDescription = csJobDescription
                        }
            );

            Mock<IUnitOfWork> mockUnitOfWork = new Mock<IUnitOfWork>();
            mockUnitOfWork.Setup(w => w.CreateObjectSet<CS_Job>()).Returns(fakeJobObject);

            JobModel jobModel = new JobModel(mockUnitOfWork.Object);

            string body = jobModel.GenerateEmailBodyForEstimationTeam(243);

            StringBuilder sb = new StringBuilder();

            sb.Append("<div>");
            sb.Append("<div style='width: 100%; display: inline-block;'>");
            sb.Append("<div style='text-align: right;width:30%; height:100% ;display: inline-block;float:left'><b>");
            sb.Append("Proposal#:");
            sb.Append("</b></div>");
            sb.Append("<div style='text-align: left;width:68%; height:100% ;display: inline-block;float:right'>");
            sb.Append(" ##");
            sb.Append("</div>");
            sb.Append("</div>");
            sb.Append("<div style='width: 100%; display: inline-block;'>");
            sb.Append("<div style='text-align: right;width:30%; height:100% ;display: inline-block;float:left'><b>");
            sb.Append("Job#:");
            sb.Append("</b></div>");
            sb.Append("<div style='text-align: left;width:68%; height:100% ;display: inline-block;float:right'>");
            sb.Append(" PA000000025INT");
            sb.Append("</div>");
            sb.Append("</div>");
            sb.Append("<div style='width: 100%; display: inline-block;'>");
            sb.Append("<div style='text-align: right;width:30%; height:100% ;display: inline-block;float:left'><b>");
            sb.Append("Customer:");
            sb.Append("</b></div>");
            sb.Append("<div style='text-align: left;width:68%; height:100% ;display: inline-block;float:right'>");
            sb.Append(" Test Customer");
            sb.Append("</div>");
            sb.Append("</div>");
            sb.Append("<div style='width: 100%; display: inline-block;'>");
            sb.Append("<div style='text-align: right;width:30%; height:100% ;display: inline-block;float:left'><b>");
            sb.Append("Division:");
            sb.Append("</b></div>");
            sb.Append("<div style='text-align: left;width:68%; height:100% ;display: inline-block;float:right'>");
            sb.Append(" 005");
            sb.Append("</div>");
            sb.Append("</div>");
            sb.Append("<div style='width: 100%; display: inline-block;'>");
            sb.Append("<div style='text-align: right;width:30%; height:100% ;display: inline-block;float:left'><b>");
            sb.Append("JobType:");
            sb.Append("</b></div>");
            sb.Append("<div style='text-align: left;width:68%; height:100% ;display: inline-block;float:right'>");
            sb.Append(" A");
            sb.Append("</div>");
            sb.Append("</div>");
            sb.Append("<div style='width: 100%; display: inline-block;'>");
            sb.Append("<div style='text-align: right;width:30%; height:100% ;display: inline-block;float:left'><b>");
            sb.Append("JobAction:");
            sb.Append("</b></div>");
            sb.Append("<div style='text-align: left;width:68%; height:100% ;display: inline-block;float:right'>");
            sb.Append(" Environmental Work, General - Undefined Scope of Work");
            sb.Append("</div>");
            sb.Append("</div>");
            sb.Append("<div style='width: 100%; display: inline-block;'>");
            sb.Append("<div style='text-align: right;width:30%; height:100% ;display: inline-block;float:left'><b>");
            sb.Append("Scope Of Work:");
            sb.Append("</b></div>");
            sb.Append("<div style='text-align: left;width:68%; height:100% ;display: inline-block;float:right'>");
            sb.Append("xxcxcxc");
            sb.Append("</div>");
            sb.Append("</div>");
            sb.Append("<div style='width: 100%; display: inline-block;'>");
            sb.Append("<div style='text-align: right;width:30%; height:100% ;display: inline-block;float:left'><b>");
            sb.Append("Job start date:");
            sb.Append("</b></div>");
            sb.Append("<div style='text-align: left;width:68%; height:100% ;display: inline-block;float:right'>");
            sb.Append("02/14/2011 00:00:00");
            sb.Append("</div>");
            sb.Append("</div>");
            sb.Append("<div style='width: 100%; display: inline-block;'>");
            sb.Append("<div style='text-align: right;width:30%; height:100% ;display: inline-block;float:left'><b>");
            sb.Append("Employee:");
            sb.Append("</b></div>");
            sb.Append("<div style='text-align: left;width:68%; height:100% ;display: inline-block;float:right'>");
            sb.Append(" Dcecilia, Test");
            sb.Append("</div>");
            sb.Append("</div>");
            sb.Append("<div style='width: 100%; display: inline-block;'>");
            sb.Append("<div style='text-align: right;width:30%; height:100% ;display: inline-block;float:left'><b>");
            sb.Append("Number Engines:");
            sb.Append("</b></div>");
            sb.Append("<div style='text-align: left;width:68%; height:100% ;display: inline-block;float:right'>");
            sb.Append(" 1");
            sb.Append("</div>");
            sb.Append("</div>");
            sb.Append("<div style='width: 100%; display: inline-block;'>");
            sb.Append("<div style='text-align: right;width:30%; height:100% ;display: inline-block;float:left'><b>");
            sb.Append("Number Loads:");
            sb.Append("</b></div>");
            sb.Append("<div style='text-align: left;width:68%; height:100% ;display: inline-block;float:right'>");
            sb.Append(" 2");
            sb.Append("</div>");
            sb.Append("</div>");
            sb.Append("<div style='width: 100%; display: inline-block;'>");
            sb.Append("<div style='text-align: right;width:30%; height:100% ;display: inline-block;float:left'><b>");
            sb.Append("Number Empties:");
            sb.Append("</b></div>");
            sb.Append("<div style='text-align: left;width:68%; height:100% ;display: inline-block;float:right'>");
            sb.Append(" 1");
            sb.Append("</div>");
            sb.Append("</div>");
            sb.Append("</div>");

            Assert.AreEqual(sb.ToString(), body);
        }
Ejemplo n.º 2
0
        public void GenerateEmailBodyForInvoicingTeamTest()
        {
            DateTime dt = new DateTime(2011, 02, 14);

            TimeSpan timeSpan = new TimeSpan(10, 11, 59);

            CS_Country country = new CS_Country()
                                     {
                                         ID = 1,
                                         Active = true,
                                         Name = "USA"

                                     };

            CS_State state = new CS_State()
                                 {
                                     ID = 1,
                                     Active = true,
                                     Name = "Texas"
                                 };

            CS_City city = new CS_City()
                               {
                                   ID = 1,
                                   Active = true,
                                   Name = "Dalton"
                               };

            CS_LocationInfo locationInfo = new CS_LocationInfo()
                                            {
                                                Active = true,
                                                CountryID = 1,
                                                StateID = 1,
                                                CityID = 1,
                                                CS_Country = country,
                                                CS_State = state,
                                                CS_City = city
                                            };

            CS_Frequency frequency = new CS_Frequency()
                                         {
                                             Active = true,
                                             ID = 1,
                                             Description = "D"
                                         };

            CS_JobDescription csJobDescription = new CS_JobDescription()
            {
                Active = true,
                NumberEmpties = 1,
                NumberLoads = 2,
                NumberEngines = 1
            };

            CS_Division division = new CS_Division()
            {
                ID = 241,
                Active = true,
                Name = "005",
                Description = "White River, Ontario"
            };

            CS_JobDivision jobdivision = new CS_JobDivision()
            {
                Active = true,
                JobID = 243,
                DivisionID = 241,
                CS_Division = division
            };

            CS_Employee employee = new CS_Employee()
            {
                ID = 1,
                Active = true,
                Name = "Dcecilia",
                FirstName = "Test",
                DivisionID = 241
            };

            CS_Reserve reserve = new CS_Reserve()
            {
                Active = true,
                JobID = 243,
                Type = 2,
                CS_Employee = employee,
                DivisionID = 241
            };

            EntityCollection<CS_JobDivision> JobDivision = new EntityCollection<CS_JobDivision>();

            JobDivision.Add(jobdivision);

            CS_ScopeOfWork csScopeOfWork = new CS_ScopeOfWork()
            {
                Active = true,
                ScopeOfWork = "xxcxcxc",
                JobId = 243
            };

            EntityCollection<CS_Reserve> csReserves = new EntityCollection<CS_Reserve>();
            csReserves.Add(reserve);

            EntityCollection<CS_ScopeOfWork> scopeOfWorks = new EntityCollection<CS_ScopeOfWork>();
            scopeOfWorks.Add(csScopeOfWork);

            //Arrange
            FakeObjectSet<CS_Job> fakeJobObject = new FakeObjectSet<CS_Job>();
            fakeJobObject.AddObject
                (
                    new CS_Job()
                    {
                        ID = 243,
                        Active = true,
                        CreatedBy = "rbrandao",
                        CreationDate = DateTime.Now,
                        ModificationDate = DateTime.Now,
                        ModifiedBy = "Load",
                        //Internal_Tracking = "000000025INT",
                        Number = "000243",
                        CS_ScopeOfWork = scopeOfWorks,
                        CS_JobDivision = JobDivision,
                        CS_Reserve = csReserves,
                        CS_CustomerInfo = new CS_CustomerInfo()
                        {
                            Active = true,
                            CS_Customer = new CS_Customer()
                            {
                                Active = true,
                                Name = "American Test"
                            },
                            CS_Division = division,
                            CS_Contact1 = new CS_Contact()
                            {
                                ID = 1,
                                Active = true,
                                Name = "danilo",
                                LastName = "cecilia",
                            },
                            CS_Contact3 = new CS_Contact()
                                             {
                                                 ID = 1,
                                                 Active = true,
                                                 Name = "danilo",
                                                 LastName = "cecilia",
                                             },
                            //IsCustomer = true,
                            InitialCustomerContactId = 1,
                            BillToContactId = 1

                        },
                        CS_JobInfo = new CS_JobInfo()
                        {
                            Active = true,
                            InterimBill = true,
                            CS_Employee = employee,
                            EmployeeID = employee.ID,
                            CS_Frequency = frequency,
                            FrequencyID = 1,
                            CS_JobAction = new CS_JobAction()
                            {
                                Active = true,
                                Description = "Environmental Work, General - Undefined Scope of Work"
                            },
                            CS_JobType = new CS_JobType()
                            {
                                Active = true,
                                Description = "A"
                            },
                            InitialCallDate = dt,
                            InitialCallTime = timeSpan,
                            CS_PriceType = new CS_PriceType()
                                               {
                                                   Active = true,
                                                   Acronym = "P",
                                                   Description = "description test"
                                               },
                            CS_JobCategory = new CS_JobCategory()
                                                {
                                                    Active = true,
                                                    Description = "B"
                                                },
                            CS_Job_JobStatus = new EntityCollection<CS_Job_JobStatus>()
                            {
                                new CS_Job_JobStatus()
                                {
                                    Active = true,
                                    JobStatusId = (int)Globals.JobRecord.JobStatus.Active,
                                    JobStartDate = new DateTime(2011,02,14),
                                    JobCloseDate = new DateTime(2011,02,14)
                                }
                            }

                        },
                        CS_LocationInfo = locationInfo,
                        CS_JobDescription = csJobDescription
                    }
            );

            //Act
            Mock<IUnitOfWork> mockUnitOfWork = new Mock<IUnitOfWork>();
            mockUnitOfWork.Setup(w => w.CreateObjectSet<CS_Job>()).Returns(fakeJobObject);

            JobModel jobModel = new JobModel(mockUnitOfWork.Object);

            string body = jobModel.GenerateEmailBodyForInvoicingTeam(243);

            StringBuilder sb = new StringBuilder();

            sb.Append("<div>");
            sb.Append("<div style='width: 100%; display: inline-block;'>");
            sb.Append("<div style='text-align: right;width:30%; height:100% ;display: inline-block;float:left'><b>");
            sb.Append("Job#:");
            sb.Append("</b></div>");
            sb.Append("<div style='text-align: left;width:68%; height:100% ;display: inline-block;float:right'>");
            sb.Append(" PA000243");
            sb.Append("</div>");
            sb.Append("</div>");
            sb.Append("<div style='width: 100%; display: inline-block;'>");
            sb.Append("<div style='text-align: right;width:30%; height:100% ;display: inline-block;float:left'><b>");
            sb.Append("Customer:");
            sb.Append("</b></div>");
            sb.Append("<div style='text-align: left;width:68%; height:100% ;display: inline-block;float:right'>");
            sb.Append(" American Test");
            sb.Append("</div>");
            sb.Append("</div>");
            sb.Append("<div style='width: 100%; display: inline-block;'>");
            sb.Append("<div style='text-align: right;width:30%; height:100% ;display: inline-block;float:left'><b>");
            sb.Append("Initial Customer Contact:");
            sb.Append("</b></div>");
            sb.Append("<div style='text-align: left;width:68%; height:100% ;display: inline-block;float:right'>");
            sb.Append(" danilo");
            sb.Append("</div>");
            sb.Append("</div>");
            sb.Append("<div style='width: 100%; display: inline-block;'>");
            sb.Append("<div style='text-align: right;width:30%; height:100% ;display: inline-block;float:left'><b>");
            sb.Append("Bill to:");
            sb.Append("</b></div>");
            sb.Append("<div style='text-align: left;width:68%; height:100% ;display: inline-block;float:right'>");
            sb.Append(" cecilia, danilo");
            sb.Append("</div>");
            sb.Append("</div>");
            sb.Append("<div style='width: 100%; display: inline-block;'>");
            sb.Append("<div style='text-align: right;width:30%; height:100% ;display: inline-block;float:left'><b>");
            sb.Append("Initial Call date:");
            sb.Append("</b></div>");
            sb.Append("<div style='text-align: left;width:68%; height:100% ;display: inline-block;float:right'>");
            sb.Append(" 02/14/2011");
            sb.Append("</div>");
            sb.Append("</div>");
            sb.Append("<div style='width: 100%; display: inline-block;'>");
            sb.Append("<div style='text-align: right;width:30%; height:100% ;display: inline-block;float:left'><b>");
            sb.Append("Initial Call time:");
            sb.Append("</b></div>");
            sb.Append("<div style='text-align: left;width:68%; height:100% ;display: inline-block;float:right'>");
            sb.Append(" 10:11:59");
            sb.Append("</div>");
            sb.Append("</div>");
            sb.Append("<div style='width: 100%; display: inline-block;'>");
            sb.Append("<div style='text-align: right;width:30%; height:100% ;display: inline-block;float:left'><b>");
            sb.Append("Price Type:");
            sb.Append("</b></div>");
            sb.Append("<div style='text-align: left;width:68%; height:100% ;display: inline-block;float:right'>");
            sb.Append(" description test");
            sb.Append("</div>");
            sb.Append("</div>");
            sb.Append("<div style='width: 100%; display: inline-block;'>");
            sb.Append("<div style='text-align: right;width:30%; height:100% ;display: inline-block;float:left'><b>");
            sb.Append("Job Action:");
            sb.Append("</b></div>");
            sb.Append("<div style='text-align: left;width:68%; height:100% ;display: inline-block;float:right'>");
            sb.Append(" Environmental Work, General - Undefined Scope of Work");
            sb.Append("</div>");
            sb.Append("</div>");
            sb.Append("<div style='width: 100%; display: inline-block;'>");
            sb.Append("<div style='text-align: right;width:30%; height:100% ;display: inline-block;float:left'><b>");
            sb.Append("Job Category:");
            sb.Append("</b></div>");
            sb.Append("<div style='text-align: left;width:68%; height:100% ;display: inline-block;float:right'>");
            sb.Append(" B");
            sb.Append("</div>");
            sb.Append("</div>");
            sb.Append("<div style='width: 100%; display: inline-block;'>");
            sb.Append("<div style='text-align: right;width:30%; height:100% ;display: inline-block;float:left'><b>");
            sb.Append("Job Type:");
            sb.Append("</b></div>");
            sb.Append("<div style='text-align: left;width:68%; height:100% ;display: inline-block;float:right'>");
            sb.Append(" A");
            sb.Append("</div>");
            sb.Append("</div>");
            sb.Append("<div style='width: 100%; display: inline-block;'>");
            sb.Append("<div style='text-align: right;width:30%; height:100% ;display: inline-block;float:left'><b>");
            sb.Append("Division:");
            sb.Append("</b></div>");
            sb.Append("<div style='text-align: left;width:68%; height:100% ;display: inline-block;float:right'>");
            sb.Append(" 005");
            sb.Append("</div>");
            sb.Append("</div>");
            sb.Append("<div style='width: 100%; display: inline-block;'>");
            sb.Append("<div style='text-align: right;width:30%; height:100% ;display: inline-block;float:left'><b>");
            sb.Append("Interim Bill:");
            sb.Append("</b></div>");
            sb.Append("<div style='text-align: left;width:68%; height:100% ;display: inline-block;float:right'>");
            sb.Append(" Yes");
            sb.Append("</div>");
            sb.Append("</div>");
            sb.Append("<div style='width: 100%; display: inline-block;'>");
            sb.Append("<div style='text-align: right;width:30%; height:100% ;display: inline-block;float:left'><b>");
            sb.Append("Requested By:");
            sb.Append("</b></div>");
            sb.Append("<div style='text-align: left;width:68%; height:100% ;display: inline-block;float:right'>");
            sb.Append(" Dcecilia, Test");
            sb.Append("</div>");
            sb.Append("</div>");
            sb.Append("<div style='width: 100%; display: inline-block;'>");
            sb.Append("<div style='text-align: right;width:30%; height:100% ;display: inline-block;float:left'><b>");
            sb.Append("Frequency:");
            sb.Append("</b></div>");
            sb.Append("<div style='text-align: left;width:68%; height:100% ;display: inline-block;float:right'>");
            sb.Append(" D");
            sb.Append("</div>");
            sb.Append("</div>");
            sb.Append("<div style='width: 100%; display: inline-block;'>");
            sb.Append("<div style='text-align: right;width:30%; height:100% ;display: inline-block;float:left'><b>");
            sb.Append("Country:");
            sb.Append("</b></div>");
            sb.Append("<div style='text-align: left;width:68%; height:100% ;display: inline-block;float:right'>");
            sb.Append(" USA");
            sb.Append("</div>");
            sb.Append("</div>");
            sb.Append("<div style='width: 100%; display: inline-block;'>");
            sb.Append("<div style='text-align: right;width:30%; height:100% ;display: inline-block;float:left'><b>");
            sb.Append("State:");
            sb.Append("</b></div>");
            sb.Append("<div style='text-align: left;width:68%; height:100% ;display: inline-block;float:right'>");
            sb.Append(" Texas");
            sb.Append("</div>");
            sb.Append("</div>");
            sb.Append("<div style='width: 100%; display: inline-block;'>");
            sb.Append("<div style='text-align: right;width:30%; height:100% ;display: inline-block;float:left'><b>");
            sb.Append("City:");
            sb.Append("</b></div>");
            sb.Append("<div style='text-align: left;width:68%; height:100% ;display: inline-block;float:right'>");
            sb.Append(" Dalton");
            sb.Append("</div>");
            sb.Append("</div>");
            sb.Append("<div style='width: 100%; display: inline-block;'>");
            sb.Append("<div style='text-align: right;width:30%; height:100% ;display: inline-block;float:left'><b>");
            sb.Append("Number Engines:");
            sb.Append("</b></div>");
            sb.Append("<div style='text-align: left;width:68%; height:100% ;display: inline-block;float:right'>");
            sb.Append(" 1");
            sb.Append("</div>");
            sb.Append("</div>");
            sb.Append("<div style='width: 100%; display: inline-block;'>");
            sb.Append("<div style='text-align: right;width:30%; height:100% ;display: inline-block;float:left'><b>");
            sb.Append("Number Loads:");
            sb.Append("</b></div>");
            sb.Append("<div style='text-align: left;width:68%; height:100% ;display: inline-block;float:right'>");
            sb.Append(" 2");
            sb.Append("</div>");
            sb.Append("</div>");
            sb.Append("<div style='width: 100%; display: inline-block;'>");
            sb.Append("<div style='text-align: right;width:30%; height:100% ;display: inline-block;float:left'><b>");
            sb.Append("Number Empties:");
            sb.Append("</b></div>");
            sb.Append("<div style='text-align: left;width:68%; height:100% ;display: inline-block;float:right'>");
            sb.Append(" 1");
            sb.Append("</div>");
            sb.Append("</div>");
            sb.Append("<div style='width: 100%; display: inline-block;'>");
            sb.Append("<div style='text-align: right;width:30%; height:100% ;display: inline-block;float:left'><b>");
            sb.Append("Scope Of Work:");
            sb.Append("</b></div>");
            sb.Append("<div style='text-align: left;width:68%; height:100% ;display: inline-block;float:right'>");
            sb.Append("xxcxcxc");
            sb.Append("</div>");
            sb.Append("</div>");
            sb.Append("<div style='width: 100%; display: inline-block;'>");
            sb.Append("<div style='text-align: right;width:30%; height:100% ;display: inline-block;float:left'><b>");
            sb.Append("Job start date:");
            sb.Append("</b></div>");
            sb.Append("<div style='text-align: left;width:68%; height:100% ;display: inline-block;float:right'>");
            sb.Append(" 02/14/2011 00:00:00");
            sb.Append("</div>");
            sb.Append("</div>");
            sb.Append("<div style='width: 100%; display: inline-block;'>");
            sb.Append("<div style='text-align: right;width:30%; height:100% ;display: inline-block;float:left'><b>");
            sb.Append("Job end date:");
            sb.Append("</b></div>");
            sb.Append("<div style='text-align: left;width:68%; height:100% ;display: inline-block;float:right'>");
            sb.Append(" 02/14/2011 00:00:00");
            sb.Append("</div>");
            sb.Append("</div>");
            sb.Append("</div>");

            //Assert
            Assert.AreEqual(sb.ToString(), body);
        }
        /// <summary>
        /// Persists changes to Resource Allocation
        /// </summary>
        public void SaveResourceAllocation()
        {
            IList<CS_Resource> lstResource = new List<CS_Resource>();
            IList<CS_Reserve> lstReserve = new List<CS_Reserve>();

            IList<int> lstDivisions = new List<int>();

            DataTable shoppingCart = _view.ShoppingCart;

            for (int i = 0; i < shoppingCart.Rows.Count; i++)
            {
                DataRow row = shoppingCart.Rows[i];

                CS_Resource resource = new CS_Resource();
                CS_Reserve reserve = new CS_Reserve();

                if (Convert.ToInt32(row["Type"]).Equals((int)Globals.ResourceAllocation.Type.AddEmployee))
                {
                    if (row["ID"] != DBNull.Value)
                        resource.ID = Convert.ToInt32(row["ID"]);
                    if (row["EmployeeId"] != DBNull.Value)
                        resource.EmployeeID = Convert.ToInt32(row["EmployeeId"]);
                    if (row["Duration"] != DBNull.Value)
                        resource.Duration = Convert.ToInt32(row["Duration"]);
                    if (row["StartDateTime"] != DBNull.Value)
                        resource.StartDateTime = Convert.ToDateTime(row["StartDateTime"]);
                    if (row["JobId"] != DBNull.Value)
                        resource.JobID = Convert.ToInt32(row["JobId"]);

                    resource.CreatedBy = _view.UserName;
                    resource.ModifiedBy = _view.UserName;
                    resource.CreationDate = DateTime.Now;
                    resource.ModificationDate = DateTime.Now;
                    resource.Active = true;
                    resource.Type = (int)Globals.ResourceAllocation.ResourceType.Employee;

                    if (row["DivisionId"] != DBNull.Value && Convert.ToInt32(row["DivisionId"]) > 0)
                        lstDivisions.Add(Convert.ToInt32(row["DivisionId"]));

                    lstResource.Add(resource);
                }
                else if (Convert.ToInt32(row["Type"]).Equals((int)Globals.ResourceAllocation.Type.AddEquipment))
                {
                    if (row["ID"] != DBNull.Value)
                        resource.ID = Convert.ToInt32(row["ID"]);
                    if (row["EquipmentId"] != DBNull.Value)
                        resource.EquipmentID = Convert.ToInt32(row["EquipmentId"]);
                    if (row["Duration"] != DBNull.Value)
                        resource.Duration = Convert.ToInt32(row["Duration"]);
                    if (row["StartDateTime"] != DBNull.Value)
                        resource.StartDateTime = Convert.ToDateTime(row["StartDateTime"]);
                    if (row["JobId"] != DBNull.Value)
                        resource.JobID = Convert.ToInt32(row["JobId"]);
                    resource.CreatedBy = _view.UserName;
                    resource.ModifiedBy = _view.UserName;
                    resource.CreationDate = DateTime.Now;
                    resource.ModificationDate = DateTime.Now;
                    resource.Active = true;
                    resource.Type = (int)Globals.ResourceAllocation.ResourceType.Equipment;

                    if (row["DivisionId"] != DBNull.Value && Convert.ToInt32(row["DivisionId"]) > 0)
                        lstDivisions.Add(Convert.ToInt32(row["DivisionId"]));

                    lstResource.Add(resource);
                }
                else if (Convert.ToInt32(row["Type"]).Equals((int)Globals.ResourceAllocation.Type.ReserveEquipment))
                {
                    if (row["ID"] != DBNull.Value)
                        reserve.ID = Convert.ToInt32(row["ID"]);
                    if (row["EquipmentTypeId"] != DBNull.Value)
                        reserve.EquipmentTypeID = Convert.ToInt32(row["EquipmentTypeId"]);
                    if (row["JobId"] != DBNull.Value)
                        reserve.JobID = Convert.ToInt32(row["JobId"]);
                    if (row["Duration"] != DBNull.Value)
                        reserve.Duration = Convert.ToInt32(row["Duration"]);
                    if (row["StartDateTime"] != DBNull.Value)
                        reserve.StartDateTime = Convert.ToDateTime(row["StartDateTime"]);
                    if (row["DivisionId"] != DBNull.Value)
                        reserve.DivisionID = Convert.ToInt32(row["DivisionId"]);
                    reserve.CreateBy = _view.UserName;
                    reserve.CreationDate = DateTime.Now;
                    reserve.ModificationDate = DateTime.Now;
                    reserve.ModifiedBy = _view.UserName;
                    reserve.Active = true;
                    reserve.Type = (int)Globals.ResourceAllocation.ResourceType.Equipment;

                    if (row["DivisionId"] != DBNull.Value && Convert.ToInt32(row["DivisionId"]) > 0)
                        lstDivisions.Add(Convert.ToInt32(row["DivisionId"]));

                    lstReserve.Add(reserve);
                }
                else if (Convert.ToInt32(row["Type"]).Equals((int)Globals.ResourceAllocation.Type.ReserveEmployee))
                {
                    if (row["ID"] != DBNull.Value)
                        reserve.ID = Convert.ToInt32(row["ID"]);
                    if (row["EmployeeId"] != DBNull.Value)
                        reserve.EmployeeID = Convert.ToInt32(row["EmployeeId"]);
                    if (row["JobId"] != DBNull.Value)
                        reserve.JobID = Convert.ToInt32(row["JobId"]);
                    if (row["Duration"] != DBNull.Value)
                        reserve.Duration = Convert.ToInt32(row["Duration"]);
                    if (row["StartDateTime"] != DBNull.Value)
                        reserve.StartDateTime = Convert.ToDateTime(row["StartDateTime"]);
                    if (row["DivisionId"] != DBNull.Value)
                        reserve.DivisionID = Convert.ToInt32(row["DivisionId"]);
                    reserve.CreateBy = _view.UserName;
                    reserve.ModifiedBy = _view.UserName;
                    reserve.CreationDate = DateTime.Now;
                    reserve.ModificationDate = DateTime.Now;
                    reserve.Active = true;
                    reserve.Type = (int)Globals.ResourceAllocation.ResourceType.Employee;

                    if (row["DivisionId"] != DBNull.Value && Convert.ToInt32(row["DivisionId"]) > 0)
                        lstDivisions.Add(Convert.ToInt32(row["DivisionId"]));

                    lstReserve.Add(reserve);
                }
            }

            _resourceAllocationModel.SaveOrUpdateResourceAllocation(_view.JobID, lstReserve, lstResource, _view.UserName, lstDivisions, _view.Notes, true, _view.CallDate, _view.IsSubContractor, _view.SubContractorInfo, _view.FieldPO);
        }
 /// <summary>
 /// Fills the Shopping Cart List with Reserve Entity
 /// </summary>
 /// <param name="dtShoppingCart">Shopping Cart List</param>
 /// <param name="csReserve">Reserve Entity to fill Shopping Cart</param>
 private void FillShoppingCartWithReserveInfo(DataTable dtShoppingCart, CS_Reserve csReserve)
 {
     DataRow newRow = dtShoppingCart.NewRow();
     newRow["Id"] = csReserve.ID;
     if (csReserve.EquipmentTypeID.HasValue)
     {
         newRow["EquipmentTypeId"] = csReserve.EquipmentTypeID.Value;
         newRow["UnitNumber"] = csReserve.CS_EquipmentType.Name;
     }
     if (csReserve.EmployeeID.HasValue)
     {
         newRow["EmployeeId"] = csReserve.EmployeeID.Value;
         newRow["UnitNumber"] = string.Empty;
     }
     newRow["Type"] = (int)_type;
     newRow["Duration"] = csReserve.Duration;
     newRow["StartDateTime"] = csReserve.StartDateTime;
     newRow["JobId"] = csReserve.JobID;
     if (csReserve.DivisionID.HasValue)
         newRow["DivisionId"] = csReserve.DivisionID;
     newRow["Name"] = string.Format("Reserved Resource - {0} {1}", _divisionNumber, _name);
     dtShoppingCart.Rows.Add(newRow);
 }
 /// <summary>
 /// Fills Reserve Entity with Equipment Entity
 /// </summary>
 /// <param name="csReserve">Reserve Entity to be populated</param>
 private void FillReserveWithEquipmentInfo(CS_Reserve csReserve)
 {
     _type = Globals.ResourceAllocation.Type.ReserveEquipment;
     CS_EquipmentType equipmentTypeEntity = _equipmentModel.GetEquipmentType(csReserve.EquipmentTypeID.Value);
     if (null != equipmentTypeEntity)
     {
         if (csReserve.DivisionID.HasValue)
         {
             CS_Division division = _divisionModel.GetDivision(csReserve.DivisionID.Value);
             if (null != division)
             {
                 _divisionNumber = division.Name;
                 if (division.StateID.HasValue)
                 {
                     CS_State state = division.CS_State;//_locationModel.GetState(division.StateID.Value);
                     if (null != state)
                         _divisionNumber += " " + state.Acronym;
                 }
             }
         }
         _name = equipmentTypeEntity.Name;
     }
 }
 /// <summary>
 /// Fills Reserve Entity with Employee Entity
 /// </summary>
 /// <param name="csReserve">Reserve Entity to be populated</param>
 private void FillReserveWithEmployeeInfo(CS_Reserve csReserve)
 {
     _type = Globals.ResourceAllocation.Type.ReserveEmployee;
     CS_Employee employeeEntity = _employeeModel.GetEmployee(csReserve.EmployeeID.Value);
     if (null != employeeEntity)
     {
         if (employeeEntity.DivisionID.HasValue)
         {
             CS_Division division = employeeEntity.CS_Division;//_divisionModel.GetDivision(employeeEntity.DivisionID.Value);
             if (null != division)
             {
                 _divisionNumber = division.Name;
                 if (division.StateID.HasValue)
                 {
                     CS_State state = division.CS_State;//_locationModel.GetState(division.StateID.Value);
                     if (null != state)
                         _divisionNumber += " " + state.Acronym;
                 }
             }
         }
         _name = employeeEntity.FullName;
     }
 }