public ReportingResult(IList <FrameworkName> targets, IEnumerable <MemberInfo> types, string submissionId, AnalyzeRequestFlags requestFlags) { Targets = targets; RequestFlags = requestFlags; SubmissionId = submissionId; _types = types.ToDictionary(key => Tuple.Create(key.DefinedInAssemblyIdentity, key.MemberDocId), value => value); }
public ReportingResult(IList<FrameworkName> targets, IEnumerable<MemberInfo> types, string submissionId, AnalyzeRequestFlags requestFlags) { _targets = targets; _requestFlags = requestFlags; SubmissionId = submissionId; _types = types.ToDictionary(key => Tuple.Create(key.DefinedInAssemblyIdentity, key.MemberDocId), value => value); }
public ReportingResult ComputeReport( IList<FrameworkName> targets, string submissionId, AnalyzeRequestFlags requestFlags, IDictionary<MemberInfo, ICollection<AssemblyInfo>> allDependencies, IList<MemberInfo> missingDependencies, IDictionary<string, ICollection<string>> unresolvedAssemblies, IList<string> unresolvedUserAssemblies, IEnumerable<string> assembliesWithErrors) { var types = allDependencies.Keys.Where(dep => dep.TypeDocId == null); ReportingResult result = new ReportingResult(targets, types, submissionId, requestFlags); missingDependencies .AsParallel() .ForAll((Action<MemberInfo>)((item) => { // the calling assemblies are in Finder... if (allDependencies == null) { lock (result) { result.AddMissingDependency(null, item, item.RecommendedChanges); } } else { ICollection<AssemblyInfo> calledIn; if (!allDependencies.TryGetValue(item, out calledIn)) return; foreach (var callingAsm in calledIn) { lock (result) { result.AddMissingDependency(callingAsm, item, item.RecommendedChanges); } } } })); if (assembliesWithErrors != null) { foreach (var error in assembliesWithErrors) { result.AddAssemblyWithError(error); } } foreach (var unresolvedAssembly in unresolvedUserAssemblies) { result.AddUnresolvedUserAssembly(unresolvedAssembly, unresolvedAssemblies == null ? Enumerable.Empty<string>() : unresolvedAssemblies[unresolvedAssembly]); } // Compute per assembly report if (allDependencies != null) { var perAssemblyUsage = ComputePerAssemblyUsage(targets, missingDependencies, allDependencies); result.SetAssemblyUsageInfo(perAssemblyUsage); // Compute the map of assemblyInfo to name var assemblyNameMap = ComputeAssemblyNames(perAssemblyUsage); result.SetAssemblyNameMap(assemblyNameMap); } return result; }
public ReportingResult ComputeReport( IList <FrameworkName> targets, string submissionId, AnalyzeRequestFlags requestFlags, IDictionary <MemberInfo, ICollection <AssemblyInfo> > allDependencies, IList <MemberInfo> missingDependencies, IDictionary <string, ICollection <string> > unresolvedAssemblies, IList <string> unresolvedUserAssemblies, IEnumerable <string> assembliesWithErrors) { var types = allDependencies.Keys.Where(dep => dep.TypeDocId == null); ReportingResult result = new ReportingResult(targets, types, submissionId, requestFlags); missingDependencies #if !SILVERLIGHT .AsParallel() #endif .ForAll((Action <MemberInfo>)((item) => { // the calling assemblies are in Finder... if (allDependencies == null) { lock (result) { result.AddMissingDependency(null, item, item.RecommendedChanges); } } else { ICollection <AssemblyInfo> calledIn; if (!allDependencies.TryGetValue(item, out calledIn)) { return; } foreach (var callingAsm in calledIn) { lock (result) { result.AddMissingDependency(callingAsm, item, item.RecommendedChanges); } } } })); if (assembliesWithErrors != null) { foreach (var error in assembliesWithErrors) { result.AddAssemblyWithError(error); } } foreach (var unresolvedAssembly in unresolvedUserAssemblies) { result.AddUnresolvedUserAssembly(unresolvedAssembly, unresolvedAssemblies == null ? Enumerable.Empty <string>() : unresolvedAssemblies[unresolvedAssembly]); } // Compute per assembly report if (allDependencies != null) { var perAssemblyUsage = ComputePerAssemblyUsage(targets, missingDependencies, allDependencies); result.SetAssemblyUsageInfo(perAssemblyUsage); // Compute the map of assemblyInfo to name var assemblyNameMap = ComputeAssemblyNames(perAssemblyUsage); result.SetAssemblyNameMap(assemblyNameMap); } return(result); }