#3544: Fix IFileService resolution (now it runs and seem functional)
This commit is contained in:
@@ -1426,19 +1426,23 @@ namespace Umbraco.Web.Editors
|
||||
contentSave.PersistedContent.ExpireDate = contentSave.ExpireDate;
|
||||
contentSave.PersistedContent.ReleaseDate = contentSave.ReleaseDate;
|
||||
|
||||
//only set the template if it didn't change
|
||||
var template = Services.FileService.GetTemplate(contentSave.TemplateAlias);
|
||||
if (contentSave.PersistedContent.TemplateId != template.Id)
|
||||
// If the template was set.
|
||||
if (contentSave.TemplateAlias != null)
|
||||
{
|
||||
if (template == null && contentSave.TemplateAlias.IsNullOrWhiteSpace() == false)
|
||||
//only set the template if it didn't change
|
||||
var template = Services.FileService.GetTemplate(contentSave.TemplateAlias);
|
||||
if (contentSave.PersistedContent.TemplateId != template.Id)
|
||||
{
|
||||
//ModelState.AddModelError("Template", "No template exists with the specified alias: " + contentItem.TemplateAlias);
|
||||
Logger.Warn<ContentController>("No template exists with the specified alias: {TemplateAlias}", contentSave.TemplateAlias);
|
||||
}
|
||||
else
|
||||
{
|
||||
//NOTE: this could be null if there was a template and the posted template is null, this should remove the assigned template
|
||||
contentSave.PersistedContent.TemplateId = template.Id;
|
||||
if (template == null && contentSave.TemplateAlias.IsNullOrWhiteSpace() == false)
|
||||
{
|
||||
//ModelState.AddModelError("Template", "No template exists with the specified alias: " + contentItem.TemplateAlias);
|
||||
Logger.Warn<ContentController>("No template exists with the specified alias: {TemplateAlias}", contentSave.TemplateAlias);
|
||||
}
|
||||
else
|
||||
{
|
||||
//NOTE: this could be null if there was a template and the posted template is null, this should remove the assigned template
|
||||
contentSave.PersistedContent.TemplateId = template.Id;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using AutoMapper;
|
||||
using LightInject;
|
||||
using System.Web.Mvc;
|
||||
using Umbraco.Core.Models;
|
||||
using Umbraco.Core.Services;
|
||||
using Umbraco.Web.Models.ContentEditing;
|
||||
@@ -8,25 +9,20 @@ namespace Umbraco.Web.Models.Mapping
|
||||
{
|
||||
internal class DefaultTemplateResolver : IValueResolver<IContent, ContentItemDisplay, string>
|
||||
{
|
||||
/// <summary>
|
||||
/// Gets or sets the services context.
|
||||
/// </summary>
|
||||
[Inject]
|
||||
public ServiceContext Services { get; set; }
|
||||
|
||||
public string Resolve(IContent source, ContentItemDisplay destination, string destMember, ResolutionContext context)
|
||||
{
|
||||
var fileService = DependencyResolver.Current.GetService<IFileService>();
|
||||
if (source == null)
|
||||
return null;
|
||||
|
||||
// If no template id was set return default template.
|
||||
if (source.TemplateId == 0 && !string.IsNullOrWhiteSpace(source.ContentType.DefaultTemplate?.Alias))
|
||||
{
|
||||
var defaultTemplate = Services.FileService.GetTemplate(source.ContentType.DefaultTemplate.Alias);
|
||||
var defaultTemplate = fileService.GetTemplate(source.ContentType.DefaultTemplate.Alias);
|
||||
return defaultTemplate.Alias;
|
||||
}
|
||||
|
||||
var template = Services.FileService.GetTemplate(source.TemplateId);
|
||||
var template = fileService.GetTemplate(source.TemplateId);
|
||||
|
||||
return template.Alias;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user