public BuildSolutionStep UpdatePackages() { var packageWithFrameworks = packages as PackageWithFramework[] ?? packages.ToArray(); packageWithFrameworks = packageWithFrameworks .OrderBy(x => !previousVersions.ContainsKey(x.Id) || x.IsLatestVersion(previousVersions[x.Id])) .ToArray(); var packageUpdateResults = new List <PackageUpdateResult>(); foreach (var package in packageWithFrameworks) { var isLatestVersion = previousVersions.ContainsKey(package.Id) && package.IsLatestVersion(previousVersions[package.Id]); if (isLatestVersion) { continue; } package.IncrementAssemblyInfo(buildAndRevision); } IReadOnlyDictionary <string, Func <Version> > packagesVersion = packageWithFrameworks .ToDictionary(k => k.Id, v => (Func <Version>)(() => v.Version)); foreach (var package in packageWithFrameworks) { var nugetDependecies = package.TryUpdateNuspecDependencies(packagesVersion).ToArray(); var isLatestVersion = previousVersions.ContainsKey(package.Id) && package.IsLatestVersion(previousVersions[package.Id]); if (!nugetDependecies.Any() && isLatestVersion) { continue; } package.UpdateNuspecVersion(); var updateDataResult = new PackageUpdateDataResult( package.Version, nugetDependecies, package.FrameworkPackages); var packageUpdate = new PackageUpdateResult(package.Id, updateDataResult); packageUpdateResults.Add(packageUpdate); } return(new BuildSolutionStep(buildAndRevision, solutionSystemInfo, new NugetPackageResultCollection(packageUpdateResults))); }
public PackageUpdateResult(string id, PackageUpdateDataResult data) { Id = id; Data = data; }