public EmployeeWorkSchedule Add(int workScheduleId, int employeeId)
        {
            var employeeWorkSchedule = new EmployeeWorkSchedule
            {
                EmployeeId     = employeeId,
                WorkScheduleId = workScheduleId
            };

            return(_employeeWorkScheduleRepository.Add(employeeWorkSchedule));
        }
        //[TestMethod]
        public void GenerateEmployeeDailySalaryByDateRangeRegular()
        {
            //Arrange
            Initialize();
            DeleteData();

            var employee = new Employee
            {
                EmployeeCode = "11001",
                FirstName    = "Jona",
                LastName     = "Pereira",
                MiddleName   = "Aprecio",
                BirthDate    = DateTime.Parse("02/02/1991"),
                Gender       = 1,
                IsActive     = true
            };

            var employee2 = new Employee
            {
                EmployeeCode = "11002",
                FirstName    = "Cornelio",
                LastName     = "Cawicaan",
                MiddleName   = "Bue",
                BirthDate    = DateTime.Parse("10/30/1989"),
                Gender       = 2,
                IsActive     = true
            };

            var employeeInfo = new EmployeeInfo
            {
                Employee        = employee,
                Salary          = 5000,
                SalaryFrequency = FrequencyType.Weekly
            };

            var employeeInfo2 = new EmployeeInfo
            {
                Employee        = employee2,
                Salary          = 8000,
                SalaryFrequency = FrequencyType.Weekly
            };

            _employeeInfoRepository.Add(employeeInfo);
            _employeeInfoRepository.Add(employeeInfo2);

            var workSchedule = new WorkSchedule
            {
                TimeStart = new TimeSpan(0, 7, 0, 0),
                TimeEnd   = new TimeSpan(0, 16, 0, 0),
                WeekStart = 1,
                WeekEnd   = 5
            };

            var employeeWorkSchedule = new EmployeeWorkSchedule
            {
                WorkSchedule = workSchedule,
                EmployeeId   = 1
            };

            var employeeWorkSchedule2 = new EmployeeWorkSchedule
            {
                WorkSchedule = workSchedule,
                EmployeeId   = 2
            };

            _employeeWorkScheduleRepository.Add(employeeWorkSchedule);
            _employeeWorkScheduleRepository.Add(employeeWorkSchedule2);

            //Total EmployeeHours
            var totalEmployeeHours1 = new TotalEmployeeHours
            {
                Date                 = DateTime.Parse("05/02/2016"),
                EmployeeId           = 1,
                Hours                = 8,
                TotalEmployeeHoursId = 1,
                Type                 = RateType.Regular
            };

            var totalEmployeeHours2 = new TotalEmployeeHours
            {
                Date                 = DateTime.Parse("05/02/2016"),
                EmployeeId           = 2,
                Hours                = 7.5,
                TotalEmployeeHoursId = 2,
                Type                 = RateType.Regular
            };

            var totalEmployeeHours3 = new TotalEmployeeHours
            {
                Date                 = DateTime.Parse("05/03/2016"),
                EmployeeId           = 1,
                Hours                = 8.1,
                TotalEmployeeHoursId = 2,
                Type                 = RateType.Regular
            };

            var totalEmployeeHours4 = new TotalEmployeeHours
            {
                Date                 = DateTime.Parse("05/03/2016"),
                EmployeeId           = 2,
                Hours                = 4,
                TotalEmployeeHoursId = 2,
                Type                 = RateType.Regular
            };

            _totalEmployeeHoursRepository.Add(totalEmployeeHours1);
            _totalEmployeeHoursRepository.Add(totalEmployeeHours2);
            _totalEmployeeHoursRepository.Add(totalEmployeeHours3);
            _totalEmployeeHoursRepository.Add(totalEmployeeHours4);

            _unitOfWork.Commit();

            //Test
            var dateFrom = DateTime.Parse("05/02/2016");
            var dateTo   = DateTime.Parse("05/03/2016");

            _employeeDailyPayrollService.GenerateEmployeeDailySalaryByDateRange(dateFrom, dateTo);

            //Results Verification
            var results = _employeeDailyPayrollService.GetByDateRange(dateFrom, dateTo);

            Assert.IsNotNull(results);
            Assert.AreEqual(4, results.Count);

            Assert.AreEqual(1, results[0].EmployeeId);
            Assert.AreEqual(3, results[0].TotalEmployeeHoursId);
            Assert.AreEqual((decimal)1012.50, results[0].TotalPay);
            Assert.AreEqual(DateTime.Parse("05/03/2016"), results[0].Date);

            Assert.AreEqual(1, results[1].EmployeeId);
            Assert.AreEqual(1, results[1].TotalEmployeeHoursId);
            Assert.AreEqual((decimal)1000, results[1].TotalPay);
            Assert.AreEqual(DateTime.Parse("05/02/2016"), results[1].Date);

            Assert.AreEqual(2, results[2].EmployeeId);
            Assert.AreEqual(4, results[2].TotalEmployeeHoursId);
            Assert.AreEqual((decimal)800, results[2].TotalPay);
            Assert.AreEqual(DateTime.Parse("05/03/2016"), results[2].Date);

            Assert.AreEqual(2, results[3].EmployeeId);
            Assert.AreEqual(2, results[3].TotalEmployeeHoursId);
            Assert.AreEqual((decimal)1500, results[3].TotalPay);
            Assert.AreEqual(DateTime.Parse("05/02/2016"), results[3].Date);
        }