public static IDictionary <ProjectPoco, IEnumerable <string> > ComposeProjectReferenceErrors( IDictionary <ProjectPoco, IEnumerable <ReferenceMetadataBase> > referenceMetadatas, IProbabilityMatchEngine <DllMetadata> wrongReferenceMatcher) { return(referenceMetadatas.Transform(x => x.OfType <DllMetadata>()) .Transform( x => x.FindBestMatch <DllMetadata, WrongReferencePropabilityMetadata>(wrongReferenceMatcher, 0d)) .Transform( x => x.Select( y => $"found possible misreference: {y.Reference} (solution contains project with the same target name: {y.SuspectedProject.Name} / {y.SuspectedProject.TargetName})"))); }
public static IEnumerable <TV> FindBestMatch <T, TV>(this IEnumerable <T> enumerabe, IProbabilityMatchEngine <T> probabilityMatchEngine, double threshold) where TV : ProbabilityMatchMetadata <T> { return(enumerabe.Select(probabilityMatchEngine.FindBestMatch) .OfType <TV>() .Where(x => x.Probability > threshold)); }
public static IEnumerable <ProbabilityMatchMetadata <T> > FindBestMatch <T>(this IEnumerable <T> enumerabe, IProbabilityMatchEngine <T> probabilityMatchEngine) { return(enumerabe.Select(probabilityMatchEngine.FindBestMatch)); }