using System.Collections.Generic; using Umbraco.Core.Models; using Umbraco.Core.Persistence; using Umbraco.Core.Persistence.Repositories; using Umbraco.Core.Persistence.UnitOfWork; using Umbraco.Core.Services; namespace Umbraco.Web.Services { /// /// Represents the File Service, which is an easy access to operations involving objects like Scripts, Stylesheets and Templates /// public class FileService : IFileService { private readonly IUnitOfWork _unitOfWork; public FileService() : this(new FileUnitOfWorkProvider()) { } public FileService(IUnitOfWorkProvider provider) { _unitOfWork = provider.GetUnitOfWork(); } /// /// Gets a list of all objects /// /// An enumerable list of objects public IEnumerable GetStylesheets(params string[] names) { var repository = RepositoryResolver.ResolveByType(_unitOfWork); return repository.GetAll(names); } /// /// Gets a object by its name /// /// Name of the stylesheet incl. extension /// A object public Stylesheet GetStylesheetByName(string name) { var repository = RepositoryResolver.ResolveByType(_unitOfWork); return repository.Get(name); } /// /// Saves a /// /// to save public void SaveStylesheet(Stylesheet stylesheet) { var repository = RepositoryResolver.ResolveByType(_unitOfWork); repository.AddOrUpdate(stylesheet); _unitOfWork.Commit(); } /// /// Deletes a stylesheet by its name /// /// Name incl. extension of the Stylesheet to delete public void DeleteStylesheet(string name) { var repository = RepositoryResolver.ResolveByType(_unitOfWork); var stylesheet = repository.Get(name); repository.Delete(stylesheet); _unitOfWork.Commit(); } /// /// Validates a /// /// to validate /// True if Stylesheet is valid, otherwise false public bool ValidateStylesheet(Stylesheet stylesheet) { return stylesheet.IsValid() && stylesheet.IsFileValidCss(); } /// /// Gets a list of all objects /// /// An enumerable list of objects public IEnumerable