private static ODataInnerError ToODataInnerError(HttpError httpError) { string innerErrorMessage = httpError.GetPropertyValue<string>(HttpErrorKeys.ExceptionMessageKey); if (innerErrorMessage == null) { string messageDetail = httpError.GetPropertyValue<string>(HttpErrorKeys.MessageDetailKey); if (messageDetail == null) { HttpError modelStateError = httpError.GetPropertyValue<HttpError>(HttpErrorKeys.ModelStateKey); return (modelStateError == null) ? null : new ODataInnerError { Message = ConvertModelStateErrors(modelStateError) }; } else { return new ODataInnerError() { Message = messageDetail }; } } else { ODataInnerError innerError = new ODataInnerError(); innerError.Message = innerErrorMessage; innerError.TypeName = httpError.GetPropertyValue<string>(HttpErrorKeys.ExceptionTypeKey); innerError.StackTrace = httpError.GetPropertyValue<string>(HttpErrorKeys.StackTraceKey); HttpError innerExceptionError = httpError.GetPropertyValue<HttpError>(HttpErrorKeys.InnerExceptionKey); if (innerExceptionError != null) { innerError.InnerError = ToODataInnerError(innerExceptionError); } return innerError; } }
public void GetPropertyValue_GetsDefault_IfPropertyMissing() { HttpError error = new HttpError(); Assert.Null(error.GetPropertyValue <string>("key")); Assert.Equal(0, error.GetPropertyValue <int>("key")); }
public void GetPropertyValue_GetsDefault_IfTypeDoesNotMatch() { HttpError error = new HttpError(); error["key"] = "x"; Assert.Null(error.GetPropertyValue <Uri>("key")); Assert.Equal(0, error.GetPropertyValue <int>("key")); }
public void GetPropertyValue_GetsValue_IfTypeMatches() { HttpError error = new HttpError(); error["key"] = "x"; Assert.Equal("x", error.GetPropertyValue <string>("key")); Assert.Equal("x", error.GetPropertyValue <object>("key")); }
/// <summary> /// Converts the <paramref name="httpError"/> to an <see cref="ODataError"/>. /// </summary> /// <param name="httpError">The <see cref="HttpError"/> instance to convert.</param> /// <returns>The converted <see cref="ODataError"/></returns> public static ODataError CreateODataError(this HttpError httpError) { if (httpError == null) { throw Error.ArgumentNull("httpError"); } return(new ODataError { Message = httpError.GetPropertyValue <string>(HttpErrorKeys.MessageKey), ErrorCode = httpError.GetPropertyValue <string>(HttpErrorKeys.ErrorCodeKey), InnerError = ToODataInnerError(httpError) }); }
public void GetPropertyValue_GetsDefault_IfPropertyMissing() { HttpError error = new HttpError(); Assert.Null(error.GetPropertyValue<string>("key")); Assert.Equal(0, error.GetPropertyValue<int>("key")); }
private static ODataInnerError ToODataInnerError(HttpError httpError) { string innerErrorMessage = httpError.GetPropertyValue <string>(HttpErrorKeys.ExceptionMessageKey); if (innerErrorMessage == null) { string messageDetail = httpError.GetPropertyValue <string>(HttpErrorKeys.MessageDetailKey); if (messageDetail == null) { HttpError modelStateError = httpError.GetPropertyValue <HttpError>(HttpErrorKeys.ModelStateKey); return((modelStateError == null) ? null : new ODataInnerError { Message = ConvertModelStateErrors(modelStateError) }); } else { return(new ODataInnerError() { Message = messageDetail }); } } else { ODataInnerError innerError = new ODataInnerError(); innerError.Message = innerErrorMessage; innerError.TypeName = httpError.GetPropertyValue <string>(HttpErrorKeys.ExceptionTypeKey); innerError.StackTrace = httpError.GetPropertyValue <string>(HttpErrorKeys.StackTraceKey); HttpError innerExceptionError = httpError.GetPropertyValue <HttpError>(HttpErrorKeys.InnerExceptionKey); if (innerExceptionError != null) { innerError.InnerError = ToODataInnerError(innerExceptionError); } return(innerError); } }
public void GetPropertyValue_GetsDefault_IfTypeDoesNotMatch() { HttpError error = new HttpError(); error["key"] = "x"; Assert.Null(error.GetPropertyValue<Uri>("key")); Assert.Equal(0, error.GetPropertyValue<int>("key")); }
public void GetPropertyValue_GetsValue_IfTypeMatches() { HttpError error = new HttpError(); error["key"] = "x"; Assert.Equal("x", error.GetPropertyValue<string>("key")); Assert.Equal("x", error.GetPropertyValue<object>("key")); }