| File: Data\StaticWebAssetsDiscoveryPattern.cs | Web Access |
| Project: src\sdk\src\StaticWebAssetsSdk\Tasks\Microsoft.NET.Sdk.StaticWebAssets.Tasks.csproj (Microsoft.NET.Sdk.StaticWebAssets.Tasks) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. #nullable disable using System.Diagnostics; using Microsoft.Build.Framework; using Microsoft.Build.Utilities; namespace Microsoft.AspNetCore.StaticWebAssets.Tasks; [DebuggerDisplay($"{{{nameof(GetDebuggerDisplay)}(),nq}}")] public class StaticWebAssetsDiscoveryPattern { public string Name { get; set; } public string Source { get; set; } public string ContentRoot { get; set; } public string BasePath { get; set; } public string Pattern { get; set; } public override bool Equals(object obj) => obj is StaticWebAssetsDiscoveryPattern pattern && Name == pattern.Name && Source == pattern.Source && ContentRoot == pattern.ContentRoot && BasePath == pattern.BasePath && Pattern == pattern.Pattern; public override int GetHashCode() { #if NET6_0_OR_GREATER return HashCode.Combine(Name, Source, ContentRoot, BasePath, Pattern); #else var hashCode = 1513180540; hashCode = hashCode * -1521134295 + EqualityComparer<string>.Default.GetHashCode(Name); hashCode = hashCode * -1521134295 + EqualityComparer<string>.Default.GetHashCode(Source); hashCode = hashCode * -1521134295 + EqualityComparer<string>.Default.GetHashCode(ContentRoot); hashCode = hashCode * -1521134295 + EqualityComparer<string>.Default.GetHashCode(BasePath); hashCode = hashCode * -1521134295 + EqualityComparer<string>.Default.GetHashCode(Pattern); return hashCode; #endif } public ITaskItem ToTaskItem() { var result = new TaskItem(Name); result.SetMetadata(nameof(ContentRoot), ContentRoot); result.SetMetadata(nameof(BasePath), BasePath); result.SetMetadata(nameof(Pattern), Pattern); result.SetMetadata(nameof(Source), Source); return result; } internal static bool HasSourceId(ITaskItem pattern, string source) => HasSourceId(pattern.GetMetadata(nameof(Source)), source); internal static bool HasSourceId(string candidate, string source) => string.Equals(candidate, source, StringComparison.Ordinal); internal bool HasSourceId(string source) => HasSourceId(Source, source); internal static StaticWebAssetsDiscoveryPattern FromTaskItem(ITaskItem pattern) { var result = new StaticWebAssetsDiscoveryPattern { Name = pattern.ItemSpec, Source = pattern.GetMetadata(nameof(Source)), BasePath = pattern.GetMetadata(nameof(BasePath)), ContentRoot = pattern.GetMetadata(nameof(ContentRoot)), Pattern = pattern.GetMetadata(nameof(Pattern)) }; return result; } public override string ToString() => string.Join(" - ", Name, Source, Pattern, BasePath, ContentRoot); private string GetDebuggerDisplay() => ToString(); }