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)); }
public void CantTranslatedResponse() { //Arrange var internalServerError = new InternalServerErrorResponse(); //Act var response = (new JsonToXmlTranslateResponse()).Translate(internalServerError); //Assert Assert.False(response is IJsonToXmlTranslatedResponse); }
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); }
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)); }