private static HttpResponseMessage CreateResponsibleMessage(HttpRequestMessage request, HttpStatusCode httpStatusCode, List <string> messages) { if (messages == null) { messages = new List <string>(); } HttpResponseMessage responseMessage; var acceptsXml = request.AcceptsXml(); if (request.IsResponsibleRequest()) { MultipartContent content; if (acceptsXml) { content = new MultipartContent { new ObjectContent <List <ServiceMessage> >( messages.Select(m => new ServiceMessage { Message = m }).ToList(), new XmlMediaTypeFormatter()) }; } else { content = new MultipartContent { new ObjectContent <List <ServiceMessage> >( messages.Select(m => new ServiceMessage { Message = m }).ToList(), new JsonMediaTypeFormatter()) }; } responseMessage = request.CreateResponse(httpStatusCode); responseMessage.Content = content; responseMessage.Content.Headers.Add(nameof(StaticResources.ResponsibleMediaType), StaticResources.ResponsibleMediaType); return(responseMessage); } responseMessage = request.CreateResponse(httpStatusCode); return(responseMessage); }
private static HttpResponseMessage CreateResponsibleMessage <T>(HttpRequestMessage request, HttpStatusCode httpStatusCode, List <string> messages, T value) { if (messages == null) { messages = new List <string>(); } HttpResponseMessage responseMessage; var acceptsXml = request.AcceptsXml(); var acceptsJson = request.AcceptsJSon(); if (request.IsResponsibleRequest()) { MultipartContent content; if (acceptsXml) { content = new MultipartContent { new ObjectContent <List <ServiceMessage> >( messages.Select(m => new ServiceMessage { Message = m }).ToList(), new XmlMediaTypeFormatter()) }; } else { content = new MultipartContent { new ObjectContent <List <ServiceMessage> >( messages.Select(m => new ServiceMessage { Message = m }).ToList(), new JsonMediaTypeFormatter()) }; } if (value != null && value is Stream) { var streamContent = value as Stream; content.Add(new StreamContent(streamContent)); } else if (value != null && value is byte[]) { var bytes = value as byte[]; content.Add(new ByteArrayContent(bytes)); } else { if (value != null) { content.Add(acceptsXml ? new ObjectContent <T>(value, new XmlMediaTypeFormatter()) : new ObjectContent <T>(value, new JsonMediaTypeFormatter())); } } responseMessage = request.CreateResponse(httpStatusCode); responseMessage.Content = content; responseMessage.Content.Headers.Add(nameof(StaticResources.ResponsibleMediaType), StaticResources.ResponsibleMediaType); return(responseMessage); } if (value != null) { if (acceptsXml) { responseMessage = request.CreateResponse(httpStatusCode, value, new XmlMediaTypeFormatter()); } else if (acceptsJson) { responseMessage = request.CreateResponse(httpStatusCode, value, new JsonMediaTypeFormatter()); } else { responseMessage = request.CreateResponse(httpStatusCode, value); } } else { responseMessage = request.CreateResponse(httpStatusCode); } return(responseMessage); }