private static ComparisonResult Contains(IModelNode tree, IModelNode pattern) { var deepComparison = tree.Flatten().Select(x => Compare(x, pattern)).AsArray(); if (deepComparison.Any(x => x.Kind == ComparisonResultKind.Same)) { return new ComparisonResult(ComparisonResultKind.Same, pattern, deepComparison.Where(x => x.Kind == ComparisonResultKind.Same).SelectMany(x => x.Matches).Distinct()); } if (deepComparison.Any(x => x.Kind == ComparisonResultKind.Partial)) { return new ComparisonResult(ComparisonResultKind.Partial, pattern, deepComparison.Where(x => x.Kind == ComparisonResultKind.Partial).SelectMany(x => x.Matches).Distinct()); } return new ComparisonResult(ComparisonResultKind.Different, pattern, null); }
private static ComparisonResult Contains(IModelNode tree, IModelNode pattern) { var deepComparison = tree.Flatten().Select(x => Compare(x, pattern)).AsArray(); if (deepComparison.Any(x => x.Kind == ComparisonResultKind.Same)) { return(new ComparisonResult(ComparisonResultKind.Same, pattern, deepComparison.Where(x => x.Kind == ComparisonResultKind.Same).SelectMany(x => x.Matches).Distinct())); } if (deepComparison.Any(x => x.Kind == ComparisonResultKind.Partial)) { return(new ComparisonResult(ComparisonResultKind.Partial, pattern, deepComparison.Where(x => x.Kind == ComparisonResultKind.Partial).SelectMany(x => x.Matches).Distinct())); } return(new ComparisonResult(ComparisonResultKind.Different, pattern, null)); }