don't short circuit the property validation, run all of them for content for all variants so we get the correct response

This commit is contained in:
Shannon
2018-08-02 23:55:47 +10:00
parent bfbcbdb604
commit be1fbcfe04
4 changed files with 10 additions and 9 deletions

View File

@@ -1,5 +1,6 @@
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using Umbraco.Core.Composing;
using Umbraco.Core.Services;
namespace Umbraco.Core.PropertyEditors.Validators
@@ -11,7 +12,7 @@ namespace Umbraco.Core.PropertyEditors.Validators
{
private readonly ILocalizedTextService _textService;
public RequiredValidator()
public RequiredValidator() : this(Current.Services.TextService)
{
}

View File

@@ -51,8 +51,8 @@ namespace Umbraco.Web.Editors.Filters
//validate for each variant
foreach (var variant in model.Variants)
{
if (contentItemValidator.ValidateProperties(model, variant, actionContext) == false) return;
if (contentItemValidator.ValidatePropertyData(model, variant, variant.PropertyCollectionDto, actionContext.ModelState) == false) return;
if (contentItemValidator.ValidateProperties(model, variant, actionContext))
contentItemValidator.ValidatePropertyData(model, variant, variant.PropertyCollectionDto, actionContext.ModelState);
}
}
}

View File

@@ -44,9 +44,9 @@ namespace Umbraco.Web.Editors.Filters
if (ValidateUserAccess(model, actionContext))
{
//now do each validation step
if (!contentItemValidator.ValidateExistingContent(model, actionContext)) return;
if (!contentItemValidator.ValidateProperties(model, model, actionContext)) return;
if (!contentItemValidator.ValidatePropertyData(model, model, model.PropertyCollectionDto, actionContext.ModelState)) return;
if (contentItemValidator.ValidateExistingContent(model, actionContext))
if (!contentItemValidator.ValidateProperties(model, model, actionContext))
contentItemValidator.ValidatePropertyData(model, model, model.PropertyCollectionDto, actionContext.ModelState);
}
}

View File

@@ -33,9 +33,9 @@ namespace Umbraco.Web.Editors.Filters
var model = (MemberSave)actionContext.ActionArguments["contentItem"];
var contentItemValidator = new MemberValidationHelper(_logger, _umbracoContextAccessor);
//now do each validation step
if (!contentItemValidator.ValidateExistingContent(model, actionContext)) return;
if (!contentItemValidator.ValidateProperties(model, model, actionContext)) return;
if (!contentItemValidator.ValidatePropertyData(model, model, model.PropertyCollectionDto, actionContext.ModelState)) return;
if (contentItemValidator.ValidateExistingContent(model, actionContext))
if (contentItemValidator.ValidateProperties(model, model, actionContext))
contentItemValidator.ValidatePropertyData(model, model, model.PropertyCollectionDto, actionContext.ModelState);
}
}
}