public Schedule createScheduleFromAgentsTxt() { var agents = JsonConvert.DeserializeObject<List<Agent>>(Resources.AgentsJson); var start = new DateTime(2014, 7, 28); var schedule = new Schedule(agents, start, start + new TimeSpan(28, 0, 0, 0)); schedule.FillUp(); return schedule; }
static void Main(string[] args) { try { ParseArgs(args); if (!File.Exists(_agentFile)) { throw new FileNotFoundException("Could not load file " + _agentFile); } var agents = JsonConvert.DeserializeObject<List<Agent>>(File.ReadAllText(DefaultAgentFile)); var schedule = new Schedule(agents, _start, _start + new TimeSpan(28, 0, 0, 0)); schedule.FillUp(); File.WriteAllText("Schedule.txt", schedule.ToString()); Process.Start("Schedule.txt"); } catch (Exception ex) { Console.WriteLine(ex.ToString()); } }
public void DontWorkTwoWeekendsInARow() { var worksFirst = new Agent { Name = "WorksFirstWeekEnd" }; var agents = new[] {worksFirst, new Agent{Name="WorksLastWeekEnd"}}; //Starts on a Sunday. var start = new DateTime(2014, 9, 7); var end = start.AddDays(8); var schedule = new Schedule(agents, start, end); schedule[start].Primary = worksFirst; schedule.FillUp(); var someoneAssigned = false; for (int i = schedule.Count() - 3; i < schedule.Count(); i++) { if (schedule[i].Primary != null) { someoneAssigned = true; Assert.AreNotEqual(worksFirst, schedule[i].Primary, "Someone was assigned 2 weekends in a row."); } } Assert.IsTrue(someoneAssigned, "No one was assigned the second weekend"); }
private void GenerateScheduleButton_Click(object sender, RoutedEventArgs e) { var statDays = StatDaysCalendar.SelectedDates.ToList<DateTime>(); var schedule = new Schedule(Agents, ScheduleStartDatePicker.SelectedDate.Value , 28, statDays); schedule.FillUp(); var filename = System.IO.Path.GetRandomFileName() + ".txt"; File.WriteAllText(filename, schedule.ToString()); Process.Start(filename); ((IOcsaWinApp)App.Current).ClearAgentPoints(); }
public void StatDaysAreWorth2Points() { //Makes sure lolwut gets assigned by giving the other guy point reduction. var agents = new List<Agent> { new Agent { Name = "lolwut" }, new Agent{Name="other guy", PointReduction = 2}}; var start = new DateTime(2014, 9, 22); var statDay = new List<DateTime> { start }; var schedule = new Schedule(agents, start, 2, statDay); schedule.FillUp(); Assert.AreEqual(2, agents[0].TotalPrimaryPoints, "Agent should have received 2 point for working on a stat day"); Assert.AreEqual(1, schedule[1].PointValue, "Second schedule day should be worth 1 point"); }