private static Task HandleExceptionAsync(HttpContext context, Exception exception) { var responseType = context.Request.Headers[HeaderNames.Accept].FirstOrDefault(x => x == "application/xml") ?? "application/json"; context.Response.ContentType = responseType; var message = string.Empty; if (exception is CustomBaseException) { context.Response.StatusCode = (int)HttpStatusCode.BadRequest; var errorDetails = new ErrorDetails { Message = ((CustomBaseException)exception).Message, }; message = responseType == "application/xml" ? errorDetails.ToXml() : errorDetails.ToJson(); } else { context.Response.StatusCode = (int)HttpStatusCode.InternalServerError; var errorDetails = new ErrorDetails { Message = "Internal Server Error from the custom middleware", }; message = responseType == "application/xml" ? errorDetails.ToXml() : errorDetails.ToJson(); } return(context.Response.WriteAsync(message)); }