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() : "");
 }