public List <Usage> FindUsagesOf(List <NugetReference> assets, List <PackagesResponse> knownVulnerables) { var usages = new List <Usage>(); foreach (var asset in assets) { foreach (var vulnPackage in knownVulnerables) { var directPackage = vulnPackage.Packages.FirstOrDefault(k => k.Id == asset.Id && k.Affected == asset.Version); if (directPackage != null) { var usage = new Usage { Package = directPackage, IssueUrl = vulnPackage.Link, Description = vulnPackage.Description }; usage.Add(asset); var differentUsages = FindPathsTo(usage, assets); usages.AddRange(differentUsages); } } } return(usages); }
public void Archive(IDictionary <DateTime, List <HighPrecisionUsageModel> > usageToArchive) { foreach (var elem in usageToArchive) { Usage.Add(elem.Key, elem.Value); } }