/// <summary> /// Writes an OData response for this client request. /// </summary> /// <param name="status">The HTTP status code for the outgoing response.</param> /// <param name="writeAction">Delegate that writes the actual OData response.</param> /// <returns>A Stream containing the outgoing response.</returns> protected Stream WriteResponse(int status, Action <ODataMessageWriter, ODataMessageWriterSettings, InMemoryTestResponseMessage> writeAction) { var writerSettings = this.GetDefaultWriterSettings(); writerSettings.SetContentType(this.incomingAccept, Encoding.UTF8.WebName); MemoryStream responseStream = new NonClosingStream(); var responseMessage = new InMemoryTestResponseMessage(responseStream, status); using (var messageWriter = new ODataMessageWriter(responseMessage, writerSettings, this.Model)) { try { writeAction(messageWriter, writerSettings, responseMessage); } catch (Exception error) { return(this.WriteErrorResponse(500, error)); } } responseStream.Seek(0, SeekOrigin.Begin); return(responseStream); }
/// <summary> /// Writes an OData response for this client request. /// </summary> /// <param name="status">The HTTP status code for the outgoing response.</param> /// <param name="writeAction">Delegate that writes the actual OData response.</param> /// <returns>A Stream containing the outgoing response.</returns> protected Stream WriteResponse(int status, Action<ODataMessageWriter, ODataMessageWriterSettings, InMemoryTestResponseMessage> writeAction) { var writerSettings = this.GetDefaultWriterSettings(); writerSettings.SetContentType(this.incomingAccept, Encoding.UTF8.WebName); MemoryStream responseStream = new NonClosingStream(); var responseMessage = new InMemoryTestResponseMessage(responseStream, status); using (var messageWriter = new ODataMessageWriter(responseMessage, writerSettings, this.Model)) { try { writeAction(messageWriter, writerSettings, responseMessage); } catch (Exception error) { return this.WriteErrorResponse(500, error); } } responseStream.Seek(0, SeekOrigin.Begin); return responseStream; }