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}")); }
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); }