public static WebStatus GetStatus(this ModelStateDictionary modelState, HttpStatusCode errorStatusCode = HttpStatusCode.BadRequest) { var status = new WebStatus(); foreach (var error in modelState.Values.SelectMany(modelStateEntry => modelStateEntry.Errors)) { status.AddError(error.ErrorMessage ?? "Internal Server Error"); // if an exception, don't leak the potentially sensitive details } if (status.HasError) { status.StatusCode = errorStatusCode; } return(status); }