@@ -54,17 +54,17 @@ private ElasticsearchResponse<TReturn> Initialize(int? statusCode, Exception exc
54
54
}
55
55
56
56
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
+
58
66
if ( response . Success )
59
67
{
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
-
68
68
if ( ! SetSpecialTypes ( stream , response , bytes ) )
69
69
{
70
70
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)
76
76
ServerError serverError ;
77
77
if ( ServerError . TryCreate ( stream , out serverError ) )
78
78
response . ServerError = serverError ;
79
+ if ( this . _requestData . ConnectionSettings . DisableDirectStreaming )
80
+ response . ResponseBodyInBytes = bytes ;
79
81
}
80
82
}
81
83
82
84
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
+
84
94
if ( response . Success )
85
95
{
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
-
94
96
if ( ! SetSpecialTypes ( stream , response , bytes ) )
95
97
{
96
98
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
100
102
else if ( response . HttpStatusCode != null )
101
103
{
102
104
response . ServerError = await ServerError . TryCreateAsync ( stream , this . _requestData . CancellationToken ) . ConfigureAwait ( false ) ;
105
+ if ( this . _requestData . ConnectionSettings . DisableDirectStreaming )
106
+ response . ResponseBodyInBytes = bytes ;
103
107
}
104
108
}
105
109
0 commit comments