ResolveAllScopedCssAssets.cs 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. // Copyright (c) .NET Foundation. All rights reserved.
  2. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
  3. using System;
  4. using System.Collections.Generic;
  5. using Microsoft.Build.Framework;
  6. using Microsoft.Build.Utilities;
  7. namespace Microsoft.AspNetCore.Razor.Tasks
  8. {
  9. public class ResolveAllScopedCssAssets : Task
  10. {
  11. [Required]
  12. public ITaskItem[] StaticWebAssets { get; set; }
  13. [Output]
  14. public ITaskItem[] ScopedCssAssets { get; set; }
  15. [Output]
  16. public ITaskItem[] ScopedCssProjectBundles { get; set; }
  17. public override bool Execute()
  18. {
  19. var scopedCssAssets = new List<ITaskItem>();
  20. var scopedCssProjectBundles = new List<ITaskItem>();
  21. for (var i = 0; i < StaticWebAssets.Length; i++)
  22. {
  23. var swa = StaticWebAssets[i];
  24. var path = swa.GetMetadata("RelativePath");
  25. if (path.EndsWith(".rz.scp.css", StringComparison.OrdinalIgnoreCase))
  26. {
  27. scopedCssAssets.Add(swa);
  28. }
  29. else if (path.EndsWith(".bundle.scp.css", StringComparison.OrdinalIgnoreCase))
  30. {
  31. scopedCssProjectBundles.Add(swa);
  32. }
  33. }
  34. ScopedCssAssets = scopedCssAssets.ToArray();
  35. ScopedCssProjectBundles = scopedCssProjectBundles.ToArray();
  36. return !Log.HasLoggedErrors;
  37. }
  38. }
  39. }