コード例 #1
0
        public static HttpResponseMessage CreateResponse <TResponse>(this HttpRequestMessage request,
                                                                     IResponseStatus <TResponse> responseStatus) where TResponse : IResponse
        {
            if (responseStatus is OkResponseStatus <TResponse> )
            {
                var response = ((OkResponseStatus <TResponse>)responseStatus).Response;
                return(request.CreateResponse(HttpStatusCode.OK, response));
            }


            Verify.Argument.IsTrue(responseStatus is ErrorResponseStatus <TResponse>, "responseStatus");

            var errorResponseStatus = ((ErrorResponseStatus <TResponse>)responseStatus);
            var responseError       = errorResponseStatus.Error;

            if (responseError.ErrorCode == CommonResponseErrorCode.InternalServerError)
            {
                var internalServerErrroResponse = new InternalServerErrorResponse {
                    ErrorMessage = responseError.ErrorMessage
                };
                return(request.CreateResponse(HttpStatusCode.InternalServerError, internalServerErrroResponse));
            }

            var badRequestResponse = ConvertResponseErrorToBadRequestErrorResponse(responseError);

            return(request.CreateResponse(HttpStatusCode.BadRequest, badRequestResponse));
        }
コード例 #2
0
        public void CantTranslatedResponse()
        {
            //Arrange
            var internalServerError = new InternalServerErrorResponse();

            //Act
            var response = (new JsonToXmlTranslateResponse()).Translate(internalServerError);

            //Assert
            Assert.False(response is IJsonToXmlTranslatedResponse);
        }
コード例 #3
0
        private static async Task WriteInternalServerErrorResponse(HttpContext context)
        {
            var requestIdService = GetRequestIdService(context);

            context.Response.StatusCode = StatusCodes.Status500InternalServerError;

            var response =
                new InternalServerErrorResponse(requestIdService.GetRequestId());

            await context.Response.WriteAsJsonAsync(response);
        }
コード例 #4
0
        private static Task HandleExceptionAsync(HttpContext context, Exception ex)
        {
            // NOTE: Here we can assign specific return codes for specific types of Exception...
            // e.g. if exception is DomainException, do something with it...

            // 500 if unexpected
            context.Response.StatusCode = StatusCodes.Status500InternalServerError;

            var response = new InternalServerErrorResponse
            {
                DateTimeOccurredUtc = DateTime.UtcNow.ToString("u", CultureInfo.InvariantCulture),
                Message             = ex.Message,
                Exception           = ex.ToString()
            };

            var contentType = context.Request.ContentType ?? string.Empty;

            var responseStringContent = JsonConvert.SerializeObject(response);

            return(context.Response.WriteAsync(responseStringContent));
        }