@@ -54,17 +54,17 @@ private ElasticsearchResponse<TReturn> Initialize(int? statusCode, Exception exc
5454 }
5555
5656 private void SetBody ( ElasticsearchResponse < TReturn > response , Stream stream )
57- {
57+ {
58+ byte [ ] bytes = null ;
59+ if ( NeedsToEagerReadStream ( ) )
60+ {
61+ var inMemoryStream = this . _requestData . MemoryStreamFactory . Create ( ) ;
62+ stream . CopyTo ( inMemoryStream , BufferSize ) ;
63+ bytes = this . SwapStreams ( ref stream , ref inMemoryStream ) ;
64+ }
65+
5866 if ( response . Success )
5967 {
60- byte [ ] bytes = null ;
61- if ( NeedsToEagerReadStream ( ) )
62- {
63- var inMemoryStream = this . _requestData . MemoryStreamFactory . Create ( ) ;
64- stream . CopyTo ( inMemoryStream , BufferSize ) ;
65- bytes = this . SwapStreams ( ref stream , ref inMemoryStream ) ;
66- }
67-
6868 if ( ! SetSpecialTypes ( stream , response , bytes ) )
6969 {
7070 if ( this . _requestData . CustomConverter != null ) response . Body = this . _requestData . CustomConverter ( response , stream ) as TReturn ;
@@ -76,21 +76,23 @@ private void SetBody(ElasticsearchResponse<TReturn> response, Stream stream)
7676 ServerError serverError ;
7777 if ( ServerError . TryCreate ( stream , out serverError ) )
7878 response . ServerError = serverError ;
79+ if ( this . _requestData . ConnectionSettings . DisableDirectStreaming )
80+ response . ResponseBodyInBytes = bytes ;
7981 }
8082 }
8183
8284 private async Task SetBodyAsync ( ElasticsearchResponse < TReturn > response , Stream stream )
83- {
85+ {
86+ byte [ ] bytes = null ;
87+ if ( NeedsToEagerReadStream ( ) )
88+ {
89+ var inMemoryStream = this . _requestData . MemoryStreamFactory . Create ( ) ;
90+ await stream . CopyToAsync ( inMemoryStream , BufferSize , this . _requestData . CancellationToken ) . ConfigureAwait ( false ) ;
91+ bytes = this . SwapStreams ( ref stream , ref inMemoryStream ) ;
92+ }
93+
8494 if ( response . Success )
8595 {
86- byte [ ] bytes = null ;
87- if ( NeedsToEagerReadStream ( ) )
88- {
89- var inMemoryStream = this . _requestData . MemoryStreamFactory . Create ( ) ;
90- await stream . CopyToAsync ( inMemoryStream , BufferSize , this . _requestData . CancellationToken ) . ConfigureAwait ( false ) ;
91- bytes = this . SwapStreams ( ref stream , ref inMemoryStream ) ;
92- }
93-
9496 if ( ! SetSpecialTypes ( stream , response , bytes ) )
9597 {
9698 if ( this . _requestData . CustomConverter != null ) response . Body = this . _requestData . CustomConverter ( response , stream ) as TReturn ;
@@ -100,6 +102,8 @@ private async Task SetBodyAsync(ElasticsearchResponse<TReturn> response, Stream
100102 else if ( response . HttpStatusCode != null )
101103 {
102104 response . ServerError = await ServerError . TryCreateAsync ( stream , this . _requestData . CancellationToken ) . ConfigureAwait ( false ) ;
105+ if ( this . _requestData . ConnectionSettings . DisableDirectStreaming )
106+ response . ResponseBodyInBytes = bytes ;
103107 }
104108 }
105109
0 commit comments