Ejemplo n.º 1
0
 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;
     }
 }
Ejemplo n.º 2
0
        public void GetPropertyValue_GetsDefault_IfPropertyMissing()
        {
            HttpError error = new HttpError();

            Assert.Null(error.GetPropertyValue <string>("key"));
            Assert.Equal(0, error.GetPropertyValue <int>("key"));
        }
Ejemplo n.º 3
0
        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"));
        }
Ejemplo n.º 4
0
        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"));
        }
Ejemplo n.º 5
0
        /// <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)
            });
        }
Ejemplo n.º 6
0
        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);
            }
        }
Ejemplo n.º 8
0
        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"));
        }
Ejemplo n.º 9
0
        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"));
        }