Define ValidationErrorResult in SpaServices; use it in MusicStore

This commit is contained in:
SteveSandersonMS
2015-12-09 17:30:35 +00:00
parent 78efc77be4
commit 906a17ea3c
5 changed files with 44 additions and 69 deletions

View File

@@ -0,0 +1,30 @@
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));
}
}
}
}