protected override void Because_of() { ShiftSchedule shiftSchedule = new ShiftSchedule(); shiftSchedule.Weeks.Add(_weekToTest.Id, _weekToTest); AssessorArgs args = new AssessorArgs() { EmployeeId = _shiftRule.EmployeeId, ItemToAssess = shiftSchedule }; _result = _shiftRule.Assess(args, out _errors); }
public virtual bool IsValid(ShiftSchedule item, out List<string> hardErrors, out List<string> softErrors) { bool result = true; bool softResult = true; hardErrors = new List<string>(); softErrors = new List<string>(); ShiftRuleCollection hardRules = null; ShiftRuleCollection softRules = null; LogSession.Main.EnterMethod(this, "IsValid"); try { /*--------- Your code goes here-------*/ List<Employee> employeeList = this.ShiftRuleFactory.DataAccess.GetEmployees(); foreach (var employee in employeeList) { LogSession.Main.LogMessage(string.Format("Assessing schedule for employee {0}", employee.id)); hardRules = this.ShiftRuleFactory.GetHardRules(employee.id); softRules = this.ShiftRuleFactory.GetSoftRules(employee.id); #region LogRules foreach (var hardRule in hardRules) { LogSession.Main.LogObject(string.Format("Hard Rule {0} for employee {1}", hardRule.Name, employee.id), hardRule); } foreach (var softRule in softRules) { LogSession.Main.LogObject(string.Format("Soft Rule {0} for employee {1}", softRule.Name, employee.id), softRule); } #endregion AssessorArgs args = new AssessorArgs() { EmployeeId = employee.id, ItemToAssess = item }; //Assess hard rules first List<string> hardRulesErrors = null; result = result & AssessRules(args, hardRules, out hardRulesErrors); if (hardRulesErrors != null) hardErrors.AddRange(hardRulesErrors); //Assess soft rules List<string> softRulesErrors = null; softResult = softResult & AssessRules(args, softRules, out softRulesErrors); if (softRulesErrors != null) softErrors.AddRange(softRulesErrors); LogSession.Main.LogSeparator(); } /*------------------------------------*/ } catch (Exception ex) { LogSession.Main.LogException(ex); throw ex; } finally { LogSession.Main.LeaveMethod(this, "IsValid"); } return result; }
private void PopulateMock(ShiftSchedule schedule) { List<JsonWeek> jsonSchedule = GetJsonSchedule(); DateTime initDate = new DateTime(2015, 06, 01); int w = 23; foreach (var jweek in jsonSchedule) { Week newWeek = new Week() { Id = w, Start_Date = initDate }; for (int wday = 1; wday < 8; wday++) { WorkingDay workingDay = new WorkingDay() { Id = wday, Week = w }; workingDay.Shifts.Add(1, new Shift() { Id = 1, Week = w, WorkingDay = wday }); foreach (int employeeId in jsonSchedule[w - 23].Week[wday - 1].AE) { workingDay.Shifts[1].AssignedEmployees.Add(employeeId, new Employee() { id = employeeId, name = "John Doe" }); } newWeek.WorkingDays.Add(workingDay.Id, workingDay); } schedule.Weeks.Add(newWeek.Id, newWeek); newWeek.Start_Date = initDate; initDate = initDate.AddDays(7); LogSession.Main.LogMessage("Week[{0}]: Start date: {1}", newWeek.Id, newWeek.Start_Date); w++; } }
protected override void Because_of() { List<string> errors = null; AssessorArgs args = null; ShiftSchedule shiftSchedule = new ShiftSchedule(); Week week = new Week(); week.Id = 50; week.Start_Date = new DateTime(2015,07,12); WorkingDay wDay = new WorkingDay(); wDay.Id = 1; wDay.Week = week.Id; wDay.Shifts.Add(1,_shift); week.WorkingDays.Add(wDay.Id, wDay); shiftSchedule.Weeks.Add(week.Id, week); args = new AssessorArgs() { EmployeeId = _shiftRule.EmployeeId, ItemToAssess = shiftSchedule }; _result = _shiftRule.Assess(args, out errors); }