File: ScopedCss\ResolveAllScopedCssAssets.cs
Web Access
Project: ..\..\..\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 Microsoft.Build.Framework;
 
namespace Microsoft.AspNetCore.StaticWebAssets.Tasks;
 
public class ResolveAllScopedCssAssets : Task
{
    [Required]
    public ITaskItem[] StaticWebAssets { get; set; }
 
    [Output]
    public ITaskItem[] ScopedCssAssets { get; set; }
 
    [Output]
    public ITaskItem[] ScopedCssProjectBundles { get; set; }
 
    public override bool Execute()
    {
        var scopedCssAssets = new List<ITaskItem>();
        var scopedCssProjectBundles = new List<ITaskItem>();
 
        for (var i = 0; i < StaticWebAssets.Length; i++)
        {
            var swa = StaticWebAssets[i];
            var path = swa.GetMetadata("RelativePath");
            if (path.EndsWith(".rz.scp.css", StringComparison.OrdinalIgnoreCase))
            {
                scopedCssAssets.Add(swa);
            }
            else if (path.EndsWith(".bundle.scp.css", StringComparison.OrdinalIgnoreCase))
            {
                scopedCssProjectBundles.Add(swa);
            }
        }
 
        ScopedCssAssets = [.. scopedCssAssets];
        ScopedCssProjectBundles = [.. scopedCssProjectBundles];
 
        return !Log.HasLoggedErrors;
    }
}