コード例 #1
0
        public HttpResponseMessage Post(HttpError_Todo todo)
        {
            if (!ModelState.IsValid)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState));
            }

            switch (todo.ErrorType)
            {
            case ErrorType.ThrowExceptionInAction:
                throw new Exception("ThrowExceptionInAction");

            case ErrorType.ThrowHttpResponseExceptionInAction:
                throw new HttpResponseException(
                          this.Request.CreateErrorResponse(
                              HttpStatusCode.NotFound,
                              new Exception("ThrowHttpResponseExceptionInAction")));

            case ErrorType.ResponseErrorResponseInAction:
                return(this.Request.CreateErrorResponse(
                           HttpStatusCode.NotFound,
                           new Exception("ResponseErrorResponseInAction")));

            case ErrorType.ReturnODataErrorResponseInAction:
                return(this.Request.CreateErrorResponse(HttpStatusCode.InternalServerError, new ODataError()
                {
                    Message = "ReturnODataErrorResponseInActionMessage",
                    ErrorCode = "ReturnODataErrorResponseInActionCode",
                    InnerError = new ODataInnerError(new Exception("ReturnODataErrorResponseInActionException"))
                }));

            case ErrorType.ResponseHttpErrorResponseInAction:
                return
                    (this.Request.CreateResponse <HttpError>(
                         HttpStatusCode.NotFound,
                         new HttpError("ResponseHttpErrorResponseInAction")));

            default:
                return(null);
            }
        }
コード例 #2
0
        public HttpResponseMessage Post(HttpError_Todo todo)
        {
            if (!ModelState.IsValid)
            {
                return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
            }

            switch (todo.ErrorType)
            {
                case ErrorType.ThrowExceptionInAction:
                    throw new Exception("ThrowExceptionInAction");
                case ErrorType.ThrowHttpResponseExceptionInAction:
                    throw new HttpResponseException(
                        this.Request.CreateErrorResponse(
                            HttpStatusCode.NotFound,
                            new Exception("ThrowHttpResponseExceptionInAction")));
                case ErrorType.ResponseErrorResponseInAction:
                    return this.Request.CreateErrorResponse(
                        HttpStatusCode.NotFound,
                        new Exception("ResponseErrorResponseInAction"));
                case ErrorType.ReturnODataErrorResponseInAction:
                    return this.Request.CreateErrorResponse(HttpStatusCode.InternalServerError, new Microsoft.Data.OData.ODataError()
                    {
                        Message = "ReturnODataErrorResponseInActionMessage",
                        ErrorCode = "ReturnODataErrorResponseInActionCode",
                        InnerError = new Microsoft.Data.OData.ODataInnerError(new Exception("ReturnODataErrorResponseInActionException"))
                    });
                case ErrorType.ResponseHttpErrorResponseInAction:
                    return
                        this.Request.CreateResponse<HttpError>(
                            HttpStatusCode.NotFound,
                            new HttpError("ResponseHttpErrorResponseInAction"));
                default:
                    return null;
            }
        }