Files
Umbraco-CMS/src/Umbraco.Web.BackOffice/Controllers/StylesheetController.cs
Nikolaj Geisle e762fa91bc V10: fix build warnings in Web.BackOffice (#12479)
* Run code cleanup

* Start manual run

* Finish dotnet format + manual cleanup

* Fix up after merge

* Fix substrings changed to [..]

Co-authored-by: Nikolaj Geisle <niko737@edu.ucl.dk>
Co-authored-by: Zeegaan <nge@umbraco.dk>
2022-06-20 08:37:17 +02:00

37 lines
1.2 KiB
C#

using Umbraco.Cms.Core;
using Umbraco.Cms.Core.Models;
using Umbraco.Cms.Core.Models.ContentEditing;
using Umbraco.Cms.Core.Services;
using Umbraco.Cms.Web.Common.Attributes;
using Umbraco.Extensions;
using Stylesheet = Umbraco.Cms.Core.Models.ContentEditing.Stylesheet;
namespace Umbraco.Cms.Web.BackOffice.Controllers;
/// <summary>
/// The API controller used for retrieving available stylesheets
/// </summary>
[PluginController(Constants.Web.Mvc.BackOfficeApiArea)]
public class StylesheetController : UmbracoAuthorizedJsonController
{
private readonly IFileService _fileService;
public StylesheetController(IFileService fileService) => _fileService = fileService;
public IEnumerable<Stylesheet> GetAll() =>
_fileService.GetStylesheets()
.Select(x =>
new Stylesheet { Name = x.Alias, Path = x.VirtualPath });
public IEnumerable<StylesheetRule> GetRulesByName(string name)
{
IStylesheet? css = _fileService.GetStylesheet(name.EnsureEndsWith(".css"));
if (css is null || css.Properties is null)
{
return Enumerable.Empty<StylesheetRule>();
}
return css.Properties.Select(x => new StylesheetRule { Name = x.Name, Selector = x.Alias });
}
}