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); } } }
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)); } }