private string GetErrorMessage(ModelError error) { var result = error.ErrorMessage; if (string.IsNullOrEmpty(result) && error.Exception != null) { var exception = error.Exception; if (this.GetCustomExceptionMessages().ContainsKey(exception.GetType())) { result = this.GetCustomExceptionMessages()[exception.GetType()](exception); } else { result = error.Exception.Message; } } return result; }
public HttpResponseMessage PostComplexWithValidation(CustomerNameMax6 customer) { string errors = String.Empty; foreach (var kv in this.ModelState) { int errorCount = kv.Value.Errors.Count; if (errorCount > 0) { errors += String.Format("Failed to bind {0}. The errors are:\n", kv.Key); for (int i = 0; i < errorCount; i++) { ModelError error = kv.Value.Errors[i]; errors += "ErrorMessage: " + error.ErrorMessage + "\n"; if (error.Exception != null) { errors += "Exception" + error.Exception + "\n"; } } } } if (errors != String.Empty) { // Has validation failure // TODO, 334736, support HttpResponseException which takes ModelState // throw new HttpResponseException(this.ModelState); HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.BadRequest); response.Content = new StringContent(errors); throw new HttpResponseException(response); } else { // happy path return(Request.CreateResponse <int>(HttpStatusCode.OK, customer.Id)); } }
private static string ErrorMessage(ModelError modelError) { return modelError.Exception?.Message ?? modelError.ErrorMessage; }
private static string FormatModelStateErrorMessage(ModelError e) { return string.Format("{0}\r\n{1}", e.ErrorMessage, e.Exception != null ? e.Exception.ToString() : ""); }