public bool Contains(Schedulare schedulare) { var isContains = true; foreach (var itemSchedulare in ItemList) { isContains = true; foreach (var day in itemSchedulare.Days) { foreach (var shift in day.Shifts) { bool isDiff = IfDifferenceInShift(schedulare, day, shift); if (isDiff) { isContains = false; break; } } if (!isContains) { break; } } if (isContains) { return(true); } } return(false); }
public SchedulareSatisfaction(Schedulare schedulare, double satisfaction, ShiftsContainer shiftsContainer, double weight, double executeTime, double mostUnfortunateWorkerPer) { Schedulare = schedulare; Satisfaction = satisfaction; ShiftsContainer = shiftsContainer; Weight = weight; ExecuteTime = executeTime; MostUnfortunateWorkerPer = mostUnfortunateWorkerPer; }
private static bool IfDifferenceInShift(Schedulare schedulare, Day day, Shift shift) { var inputDay = schedulare.Days.FirstOrDefault(x => x.Name.CompareContent(day.Name)); var inputShift = inputDay.Shifts.FirstOrDefault(x => x.Name.CompareContent(shift.Name)); var isDiff = !shift.Workers.Count.Equals(inputShift.Workers.Count) || !shift.Workers.All(x => inputShift.Workers.Any(y => y.Name.CompareContent(x.Name))); return(isDiff); }
public void Add(Schedulare item) { if (ItemList.Count.Equals(_size)) { ItemList.Remove(ItemList.FirstOrDefault()); } ItemList.Add(item); }