Files
Umbraco-CMS/src/Umbraco.Web/Editors/EditorValidator.cs

30 lines
972 B
C#
Raw Normal View History

2018-03-16 09:06:44 +01:00
using System.Linq;
using System.Web.Http.ModelBinding;
using Umbraco.Web.Composing;
namespace Umbraco.Web.Editors
{
2018-03-16 09:06:44 +01:00
/// <summary>
/// Provides a method to validate an object using <see cref="IEditorValidator"/> validation.
/// </summary>
internal static class EditorValidator
{
2018-03-16 09:06:44 +01:00
/// <summary>
/// Validates an object.
/// </summary>
public static void Validate(ModelStateDictionary modelState, object model)
{
2018-03-16 09:06:44 +01:00
var modelType = model.GetType();
var validationResults = Current.EditorValidators // TODO: inject
2018-03-16 09:06:44 +01:00
.Where(x => x.ModelType == modelType)
.SelectMany(x => x.Validate(model))
.Where(x => !string.IsNullOrWhiteSpace(x.ErrorMessage) && x.MemberNames.Any());
2016-01-20 17:42:09 +01:00
2018-03-16 09:06:44 +01:00
foreach (var r in validationResults)
foreach (var m in r.MemberNames)
modelState.AddModelError(m, r.ErrorMessage);
2016-01-20 17:42:09 +01:00
}
}
2017-07-20 11:21:28 +02:00
}