private ImmutableArray <DockerProjectData> getCommonDeps() { var allProjectsBuilt = this.tests.Value.Prepend(this.mainProject.Value).ToArray(); Dictionary <Guid, int> commonDepCounts = new Dictionary <Guid, int>(); foreach (var p in allProjectsBuilt) // Dont use the public prop or we will trigger filterCommonDeps { foreach (var dep in p.Dependencies.All) { if (!commonDepCounts.ContainsKey(dep.Id)) { commonDepCounts.Add(dep.Id, 0); } commonDepCounts[dep.Id]++; } } var commonIds = commonDepCounts.Keys .Where(id => commonDepCounts[id] / (float)allProjectsBuilt.Length >= this.CommonDepsThreshold).ToHashSet(); var common = allProjectsBuilt .SelectMany(p => p.Dependencies.All) .GroupBy(g => g.Id) .Select(g => g.First()) .Where(d => commonIds.Contains(d.Id)); return(common.OrderBy(d => DependencyOrdering.GetOrderedProjectIndex(d.Id)).ToImmutableArray()); }
private IFeatureInfo[] Order(IEnumerable <IFeatureInfo> featuresToOrder) { stackVariable0 = featuresToOrder; stackVariable1 = ExtensionManager.u003cu003ec.u003cu003e9__35_0; if (stackVariable1 == null) { dummyVar0 = stackVariable1; stackVariable1 = new Func <IFeatureInfo, string>(ExtensionManager.u003cu003ec.u003cu003e9.u003cOrderu003eb__35_0); ExtensionManager.u003cu003ec.u003cu003e9__35_0 = stackVariable1; } return(DependencyOrdering.OrderByDependenciesAndPriorities <IFeatureInfo>(stackVariable0.OrderBy <IFeatureInfo, string>(stackVariable1), new Func <IFeatureInfo, IFeatureInfo, bool>(this.HasDependency), new Func <IFeatureInfo, int>(this.GetPriority)).ToArray <IFeatureInfo>()); }
public IEnumerable <IPackageConfiguration> GetPackageConfigurations(DependencyOrdering dependencyOrdering) { if (dependencyOrdering == DependencyOrdering.TopPackagesOnly) { var dependencies = new List <string>(); foreach (var info in ProductPackagesInfo) { dependencies.AddRange(info.Value.Dependencies); } return(Packages.Where(x => !dependencies.Contains(x.Id.ToString()))); } if (dependencyOrdering == DependencyOrdering.TopToBottom) { var packages = new List <IPackageConfiguration>(Packages); packages.Reverse(); return(packages); } return(Packages); }