| File: Settings\FilteredTemplateInfo.cs | Web Access |
| Project: src\sdk\src\TemplateEngine\Microsoft.TemplateEngine.Edge\Microsoft.TemplateEngine.Edge.csproj (Microsoft.TemplateEngine.Edge) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using Microsoft.TemplateEngine.Abstractions; using Microsoft.TemplateEngine.Edge.Template; namespace Microsoft.TemplateEngine.Edge.Settings { [Obsolete("Use ITemplateMatchInfo instead")] public class FilteredTemplateInfo : IFilteredTemplateInfo { public FilteredTemplateInfo(ITemplateInfo info, IReadOnlyList<MatchInfo> matchDisposition) { Info = info; MatchDisposition = matchDisposition; } public ITemplateInfo Info { get; } public IReadOnlyList<MatchInfo> MatchDisposition { get; set; } public bool IsMatch => MatchDisposition.Count > 0 && !MatchDisposition.Any(x => x.Kind == MatchKind.Mismatch); // There is any criteria that is not Mismatch // allowing context misses again public bool IsPartialMatch => MatchDisposition.Any(x => x.Kind != MatchKind.Mismatch) && MatchDisposition.All(x => x.Location != MatchLocation.Context || (x.Location == MatchLocation.Context && x.Kind == MatchKind.Exact)); // All parameter matches are exact (or there are no parameter matches) public bool HasParameterMismatch => MatchDisposition.Any(x => x.Location == MatchLocation.OtherParameter && x.Kind != MatchKind.Exact); public bool IsParameterMatch => !HasParameterMismatch && MatchDisposition.Any(x => x.Location == MatchLocation.OtherParameter); public bool HasInvalidParameterValue => MatchDisposition.Any(x => x.Location == MatchLocation.OtherParameter && x.Kind == MatchKind.InvalidParameterValue); public bool HasAmbiguousParameterMatch => !HasInvalidParameterValue && MatchDisposition.Any(x => x.Location == MatchLocation.OtherParameter && x.Kind == MatchKind.AmbiguousParameterValue); } }