Esempio n. 1
0
        private void GenerateFinal()
        {
            FreeSlotsForUndefined = FreeSlotsForUndefined.OrderByDescending(x => x.FullTimeSpan).ToList();

            foreach (var freeSlot in FreeSlotsForUndefined)
            {
                SearchLast(freeSlot);

                if (freeSlot.BestResultLast.ResultList.Count() > 0)
                {
                    BestResultsForLast.Add(freeSlot.BestResultLast);
                }
            }
        }
Esempio n. 2
0
        private void GenerateFirst() //For fixed and unfixed filling (Pre)
        {
            var greatestPriority = GetGreatestPriority();

            if (greatestPriority == -1)
            {
                return;
            }

            foreach (var freeSlot in FreeSlotList) //Iterate through all the freeTimes, starting with the largest one
            {
                var result = SearchFirst(greatestPriority, freeSlot);
                SaveBestResults(result);

                foreach (var bestResult in BestResultsForFirst)
                {
                    bestResult.ResultList = bestResult.ResultList.OrderBy(a => a.Start).ToList();
                }

                RemoveUsedItems(result);
                FreeSlotsForUndefined.AddRange(DivideFreeSlot(freeSlot, GetAllBestResults(result), false));
            }
        }