Пример #1
0
        public void PopulateSchedule_HasValidAssignedShiftInput_WorksheetHasShift()
        {
            Employee employee = new Employee()
            {
                Id        = 1,
                FirstName = "TestFirstName",
                LastName  = "TestLastName"
            };

            AssignedShift assignedShift = new AssignedShift()
            {
                DayOfWeek    = DayOfWeek.Sunday,
                ShiftName    = "TestShift",
                NumAvailable = 1,
                JobId        = 1,
                JobTitle     = "TestJob"
            };

            List <Employee> employeeList = new List <Employee>()
            {
                employee
            };

            List <AssignedShift> assignedShiftList = new List <AssignedShift>()
            {
                assignedShift
            };

            _schedule.PopulateSchedule(employeeList, assignedShiftList);

            var result = _schedule.Worksheet.Cells[3, 1].StringValue;

            Assert.That(result, Is.Not.EqualTo($"{assignedShift.ShiftName} - {assignedShift.JobTitle}"));
        }
Пример #2
0
        public List <AssignedShift> GenerateShift(DateTime startedDate, DateTime endedDate, string lastGroup)
        {
            var result            = new List <AssignedShift>();
            var shifts            = GetAll();
            var groups            = GroupDAO.Current.Query(x => x.GroupCode != "Admin" && x.GroupCode != Constants.Role.CUSTOMER);
            var selectedGroup     = groups.FirstOrDefault(x => x.GroupCode == lastGroup);
            var startedGroupIndex = selectedGroup == null ? 0 : groups.IndexOf(selectedGroup);

            startedGroupIndex++;
            if (startedGroupIndex >= groups.Count)
            {
                startedGroupIndex = 0;
            }
            for (var date = startedDate; date <= endedDate;)
            {
                for (var i = 0; i < shifts.Count; i++)
                {
                    var assign = new AssignedShift
                    {
                        ShiftCode   = shifts[i].ShiftCode,
                        GroupCode   = groups[startedGroupIndex].GroupCode,
                        StartedTime = date.AddHours(shifts[i].StartedTime),
                        EndedTime   = date.AddHours(shifts[i].EndedTime)
                    };
                    result.Add(assign);
                    startedGroupIndex++;
                    if (startedGroupIndex >= groups.Count)
                    {
                        startedGroupIndex = 0;
                    }
                    AssignedShiftBLO.Current.Add(assign);
                }
                date = date.AddDays(1);
            }
            return(result);
        }