public IEnumerable <PackageUpdateSet> Sort(IReadOnlyCollection <PackageUpdateSet> input) { var prioritySorter = new PrioritySort(); var topoSorter = new TopologicalSort(_logger); var priorityOrder = prioritySorter.Sort(input); return(topoSorter.Sort(priorityOrder.ToList())); }
public IEnumerable <PackageUpdateSet> Sort(IReadOnlyCollection <PackageUpdateSet> input) { var topo = new TopologicalSort <PackageUpdateSet>(_logger, Match); var inputMap = input.Select(p => new SortItemData <PackageUpdateSet>(p, PackageDeps(p, input))) .ToList(); var sorted = topo.Sort(inputMap) .ToList(); ReportSort(input.ToList(), sorted); return(sorted); }