예제 #1
0
        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);
        }
예제 #2
0
 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;
 }
예제 #3
0
        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);
        }
예제 #4
0
        public void Add(Schedulare item)
        {
            if (ItemList.Count.Equals(_size))
            {
                ItemList.Remove(ItemList.FirstOrDefault());
            }

            ItemList.Add(item);
        }