Move from ValidationErrorResult to HttpBadRequest, and support object-level errors too

This commit is contained in:
SteveSandersonMS
2015-12-14 12:02:41 +00:00
parent bba388944d
commit 8a148d8535
6 changed files with 72 additions and 39 deletions

View File

@@ -1,30 +0,0 @@
using System.Collections.Generic;
using System.Linq;
using Microsoft.AspNet.Mvc;
using Microsoft.AspNet.Mvc.ModelBinding;
namespace Microsoft.AspNet.SpaServices
{
public class ValidationErrorResult : ObjectResult {
public const int DefaultStatusCode = 400;
public ValidationErrorResult(ModelStateDictionary modelState, int errorStatusCode = DefaultStatusCode)
: base(CreateResultObject(modelState))
{
if (!modelState.IsValid) {
this.StatusCode = errorStatusCode;
}
}
private static IDictionary<string, IEnumerable<string>> CreateResultObject(ModelStateDictionary modelState)
{
if (modelState.IsValid) {
return null;
} else {
return modelState
.Where(m => m.Value.Errors.Any())
.ToDictionary(m => m.Key, m => m.Value.Errors.Select(me => me.ErrorMessage));
}
}
}
}