fixes ysod with validation errors on doc type editor.

This commit is contained in:
Shannon
2015-10-20 15:37:11 +02:00
parent 7268c6786d
commit 65b080b03f
4 changed files with 6 additions and 5 deletions

View File

@@ -151,7 +151,7 @@ namespace Umbraco.Web.Editors
public ContentTypeDisplay PostSave(ContentTypeSave contentTypeSave)
{
var savedCt = PerformPostSave(
var savedCt = PerformPostSave<IContentType, ContentTypeDisplay>(
contentTypeSave: contentTypeSave,
getContentType: i => Services.ContentTypeService.GetContentType(i),
saveContentType: type => Services.ContentTypeService.Save(type),

View File

@@ -126,13 +126,14 @@ namespace Umbraco.Web.Editors
return CultureDictionary[text].IfNullOrWhiteSpace(text);
}
protected TContentType PerformPostSave<TContentType>(
protected TContentType PerformPostSave<TContentType, TContentTypeDisplay>(
ContentTypeSave contentTypeSave,
Func<int, TContentType> getContentType,
Action<TContentType> saveContentType,
bool validateComposition = true,
Action<ContentTypeSave> beforeCreateNew = null)
where TContentType : IContentTypeComposition
where TContentTypeDisplay : ContentTypeCompositionDisplay
{
var ctId = Convert.ToInt32(contentTypeSave.Id);
@@ -140,7 +141,7 @@ namespace Umbraco.Web.Editors
{
var ct = getContentType(ctId);
//Required data is invalid so we cannot continue
var forDisplay = Mapper.Map<ContentTypeCompositionDisplay>(ct);
var forDisplay = Mapper.Map<TContentTypeDisplay>(ct);
//map the 'save' data on top
forDisplay = Mapper.Map(contentTypeSave, forDisplay);
forDisplay.Errors = ModelState.ToErrorDictionary();

View File

@@ -104,7 +104,7 @@ namespace Umbraco.Web.Editors
public ContentTypeCompositionDisplay PostSave(ContentTypeSave contentTypeSave)
{
var savedCt = PerformPostSave(
var savedCt = PerformPostSave<IMediaType, ContentTypeCompositionDisplay>(
contentTypeSave: contentTypeSave,
getContentType: i => Services.ContentTypeService.GetMediaType(i),
saveContentType: type => Services.ContentTypeService.Save(type));

View File

@@ -104,7 +104,7 @@ namespace Umbraco.Web.Editors
public ContentTypeCompositionDisplay PostSave(ContentTypeSave contentTypeSave)
{
var savedCt = PerformPostSave(
var savedCt = PerformPostSave<IMemberType, ContentTypeCompositionDisplay>(
contentTypeSave: contentTypeSave,
getContentType: i => Services.MemberTypeService.Get(i),
saveContentType: type => Services.MemberTypeService.Save(type),