using System.Linq;
using System.Web.Http.ModelBinding;
using Umbraco.Web.Composing;
namespace Umbraco.Web.Editors
{
///
/// Provides a method to validate an object using validation.
///
internal static class EditorValidator
{
///
/// Validates an object.
///
public static void Validate(ModelStateDictionary modelState, object model)
{
var modelType = model.GetType();
var validationResults = Current.EditorValidators // TODO: inject
.Where(x => x.ModelType == modelType)
.SelectMany(x => x.Validate(model))
.Where(x => !string.IsNullOrWhiteSpace(x.ErrorMessage) && x.MemberNames.Any());
foreach (var r in validationResults)
foreach (var m in r.MemberNames)
modelState.AddModelError(m, r.ErrorMessage);
}
}
}