From d0c79052e8068142bb4469c3fed66ad73d835e7b Mon Sep 17 00:00:00 2001 From: Morten Christensen Date: Mon, 12 Nov 2012 07:16:54 -0100 Subject: [PATCH] Adding SetDefaultTemplate on ContentType. Correcting UOW for FileService, which needs two providers - one for files and one for data. --- src/Umbraco.Core/Models/ContentType.cs | 15 +++++++ src/Umbraco.Core/Models/IContentType.cs | 6 +++ src/Umbraco.Web/Services/FileService.cs | 46 +++++++++++----------- src/Umbraco.Web/Services/ServiceContext.cs | 2 +- src/Umbraco.Web/Services/ServiceFactory.cs | 8 ++++ 5 files changed, 54 insertions(+), 23 deletions(-) diff --git a/src/Umbraco.Core/Models/ContentType.cs b/src/Umbraco.Core/Models/ContentType.cs index 5afdb5f3b9..6472f83a91 100644 --- a/src/Umbraco.Core/Models/ContentType.cs +++ b/src/Umbraco.Core/Models/ContentType.cs @@ -61,6 +61,21 @@ namespace Umbraco.Core.Models } } + /// + /// Sets the default template for the ContentType + /// + /// Default + public void SetDefaultTemplate(ITemplate template) + { + DefaultTemplateId = template.Id; + if(_allowedTemplates.Any(x => x.Id == template.Id) == false) + { + var templates = AllowedTemplates.ToList(); + templates.Add(template); + AllowedTemplates = templates; + } + } + /// /// Indicates whether a specific property on the current entity is dirty. /// diff --git a/src/Umbraco.Core/Models/IContentType.cs b/src/Umbraco.Core/Models/IContentType.cs index 1600a92ee3..5e89279755 100644 --- a/src/Umbraco.Core/Models/IContentType.cs +++ b/src/Umbraco.Core/Models/IContentType.cs @@ -16,5 +16,11 @@ namespace Umbraco.Core.Models /// Gets or Sets a list of Templates which are allowed for the ContentType /// IEnumerable AllowedTemplates { get; set; } + + /// + /// Sets the default template for the ContentType + /// + /// Default + void SetDefaultTemplate(ITemplate template); } } \ No newline at end of file diff --git a/src/Umbraco.Web/Services/FileService.cs b/src/Umbraco.Web/Services/FileService.cs index 91600ba402..4d7ef2ac79 100644 --- a/src/Umbraco.Web/Services/FileService.cs +++ b/src/Umbraco.Web/Services/FileService.cs @@ -12,15 +12,17 @@ namespace Umbraco.Web.Services /// public class FileService : IFileService { - private readonly IUnitOfWork _unitOfWork; + private readonly IUnitOfWork _fileUnitOfWork; + private readonly IUnitOfWork _dataUnitOfWork; - public FileService() : this(new FileUnitOfWorkProvider()) + public FileService() : this(new FileUnitOfWorkProvider(), new PetaPocoUnitOfWorkProvider()) { } - public FileService(IUnitOfWorkProvider provider) + public FileService(IUnitOfWorkProvider fileProvider, IUnitOfWorkProvider dataProvider) { - _unitOfWork = provider.GetUnitOfWork(); + _fileUnitOfWork = fileProvider.GetUnitOfWork(); + _dataUnitOfWork = dataProvider.GetUnitOfWork(); } /// @@ -29,7 +31,7 @@ namespace Umbraco.Web.Services /// An enumerable list of objects public IEnumerable GetStylesheets(params string[] names) { - var repository = RepositoryResolver.ResolveByType(_unitOfWork); + var repository = RepositoryResolver.ResolveByType(_fileUnitOfWork); return repository.GetAll(names); } @@ -40,7 +42,7 @@ namespace Umbraco.Web.Services /// A object public Stylesheet GetStylesheetByName(string name) { - var repository = RepositoryResolver.ResolveByType(_unitOfWork); + var repository = RepositoryResolver.ResolveByType(_fileUnitOfWork); return repository.Get(name); } @@ -50,9 +52,9 @@ namespace Umbraco.Web.Services /// to save public void SaveStylesheet(Stylesheet stylesheet) { - var repository = RepositoryResolver.ResolveByType(_unitOfWork); + var repository = RepositoryResolver.ResolveByType(_fileUnitOfWork); repository.AddOrUpdate(stylesheet); - _unitOfWork.Commit(); + _fileUnitOfWork.Commit(); } /// @@ -61,10 +63,10 @@ namespace Umbraco.Web.Services /// Name incl. extension of the Stylesheet to delete public void DeleteStylesheet(string name) { - var repository = RepositoryResolver.ResolveByType(_unitOfWork); + var repository = RepositoryResolver.ResolveByType(_fileUnitOfWork); var stylesheet = repository.Get(name); repository.Delete(stylesheet); - _unitOfWork.Commit(); + _fileUnitOfWork.Commit(); } /// @@ -83,7 +85,7 @@ namespace Umbraco.Web.Services /// An enumerable list of objects public IEnumerable