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