@@ -86,25 +86,20 @@ public ViewBufferTextWriter(ViewBuffer buffer, Encoding encoding, HtmlEncoder ht
86
86
/// <inheritdoc />
87
87
public override Encoding Encoding { get ; }
88
88
89
- /// <inheritdoc />
90
- public bool IsBuffering { get ; private set ; } = true ;
91
-
92
89
/// <summary>
93
90
/// Gets the <see cref="ViewBuffer"/>.
94
91
/// </summary>
95
92
public ViewBuffer Buffer { get ; }
96
93
94
+ /// <summary>
95
+ /// Gets a value that indiciates if <see cref="Flush"/> or <see cref="FlushAsync" /> was invoked.
96
+ /// </summary>
97
+ public bool Flushed { get ; private set ; }
98
+
97
99
/// <inheritdoc />
98
100
public override void Write ( char value )
99
101
{
100
- if ( IsBuffering )
101
- {
102
- Buffer . AppendHtml ( value . ToString ( ) ) ;
103
- }
104
- else
105
- {
106
- _inner . Write ( value ) ;
107
- }
102
+ Buffer . AppendHtml ( value . ToString ( ) ) ;
108
103
}
109
104
110
105
/// <inheritdoc />
@@ -125,14 +120,7 @@ public override void Write(char[] buffer, int index, int count)
125
120
throw new ArgumentOutOfRangeException ( nameof ( count ) ) ;
126
121
}
127
122
128
- if ( IsBuffering )
129
- {
130
- Buffer . AppendHtml ( new string ( buffer , index , count ) ) ;
131
- }
132
- else
133
- {
134
- _inner . Write ( buffer , index , count ) ;
135
- }
123
+ Buffer . AppendHtml ( new string ( buffer , index , count ) ) ;
136
124
}
137
125
138
126
/// <inheritdoc />
@@ -143,14 +131,7 @@ public override void Write(string value)
143
131
return ;
144
132
}
145
133
146
- if ( IsBuffering )
147
- {
148
- Buffer . AppendHtml ( value ) ;
149
- }
150
- else
151
- {
152
- _inner . Write ( value ) ;
153
- }
134
+ Buffer . AppendHtml ( value ) ;
154
135
}
155
136
156
137
/// <inheritdoc />
@@ -186,14 +167,7 @@ public void Write(IHtmlContent value)
186
167
return ;
187
168
}
188
169
189
- if ( IsBuffering )
190
- {
191
- Buffer . AppendHtml ( value ) ;
192
- }
193
- else
194
- {
195
- value . WriteTo ( _inner , _htmlEncoder ) ;
196
- }
170
+ Buffer . AppendHtml ( value ) ;
197
171
}
198
172
199
173
/// <summary>
@@ -207,14 +181,7 @@ public void Write(IHtmlContentContainer value)
207
181
return ;
208
182
}
209
183
210
- if ( IsBuffering )
211
- {
212
- value . MoveTo ( Buffer ) ;
213
- }
214
- else
215
- {
216
- value . WriteTo ( _inner , _htmlEncoder ) ;
217
- }
184
+ value . MoveTo ( Buffer ) ;
218
185
}
219
186
220
187
/// <inheritdoc />
@@ -245,15 +212,8 @@ public override void WriteLine(object value)
245
212
/// <inheritdoc />
246
213
public override Task WriteAsync ( char value )
247
214
{
248
- if ( IsBuffering )
249
- {
250
- Buffer . AppendHtml ( value . ToString ( ) ) ;
251
- return Task . CompletedTask ;
252
- }
253
- else
254
- {
255
- return _inner . WriteAsync ( value ) ;
256
- }
215
+ Buffer . AppendHtml ( value . ToString ( ) ) ;
216
+ return Task . CompletedTask ;
257
217
}
258
218
259
219
/// <inheritdoc />
@@ -273,121 +233,64 @@ public override Task WriteAsync(char[] buffer, int index, int count)
273
233
throw new ArgumentOutOfRangeException ( nameof ( count ) ) ;
274
234
}
275
235
276
- if ( IsBuffering )
277
- {
278
- Buffer . AppendHtml ( new string ( buffer , index , count ) ) ;
279
- return Task . CompletedTask ;
280
- }
281
- else
282
- {
283
- return _inner . WriteAsync ( buffer , index , count ) ;
284
- }
236
+ Buffer . AppendHtml ( new string ( buffer , index , count ) ) ;
237
+ return Task . CompletedTask ;
285
238
}
286
239
287
240
/// <inheritdoc />
288
241
public override Task WriteAsync ( string value )
289
242
{
290
- if ( IsBuffering )
291
- {
292
- Buffer . AppendHtml ( value ) ;
293
- return Task . CompletedTask ;
294
- }
295
- else
296
- {
297
- return _inner . WriteAsync ( value ) ;
298
- }
243
+ Buffer . AppendHtml ( value ) ;
244
+ return Task . CompletedTask ;
299
245
}
300
246
301
247
/// <inheritdoc />
302
248
public override void WriteLine ( )
303
249
{
304
- if ( IsBuffering )
305
- {
306
- Buffer . AppendHtml ( NewLine ) ;
307
- }
308
- else
309
- {
310
- _inner . WriteLine ( ) ;
311
- }
250
+ Buffer . AppendHtml ( NewLine ) ;
312
251
}
313
252
314
253
/// <inheritdoc />
315
254
public override void WriteLine ( string value )
316
255
{
317
- if ( IsBuffering )
318
- {
319
- Buffer . AppendHtml ( value ) ;
320
- Buffer . AppendHtml ( NewLine ) ;
321
- }
322
- else
323
- {
324
- _inner . WriteLine ( value ) ;
325
- }
256
+ Buffer . AppendHtml ( value ) ;
257
+ Buffer . AppendHtml ( NewLine ) ;
326
258
}
327
259
328
260
/// <inheritdoc />
329
261
public override Task WriteLineAsync ( char value )
330
262
{
331
- if ( IsBuffering )
332
- {
333
- Buffer . AppendHtml ( value . ToString ( ) ) ;
334
- Buffer . AppendHtml ( NewLine ) ;
335
- return Task . CompletedTask ;
336
- }
337
- else
338
- {
339
- return _inner . WriteLineAsync ( value ) ;
340
- }
263
+ Buffer . AppendHtml ( value . ToString ( ) ) ;
264
+ Buffer . AppendHtml ( NewLine ) ;
265
+ return Task . CompletedTask ;
341
266
}
342
267
343
268
/// <inheritdoc />
344
269
public override Task WriteLineAsync ( char [ ] value , int start , int offset )
345
270
{
346
- if ( IsBuffering )
347
- {
348
- Buffer . AppendHtml ( new string ( value , start , offset ) ) ;
349
- Buffer . AppendHtml ( NewLine ) ;
350
- return Task . CompletedTask ;
351
- }
352
- else
353
- {
354
- return _inner . WriteLineAsync ( value , start , offset ) ;
355
- }
271
+ Buffer . AppendHtml ( new string ( value , start , offset ) ) ;
272
+ Buffer . AppendHtml ( NewLine ) ;
273
+ return Task . CompletedTask ;
274
+
356
275
}
357
276
358
277
/// <inheritdoc />
359
278
public override Task WriteLineAsync ( string value )
360
279
{
361
- if ( IsBuffering )
362
- {
363
- Buffer . AppendHtml ( value ) ;
364
- Buffer . AppendHtml ( NewLine ) ;
365
- return Task . CompletedTask ;
366
- }
367
- else
368
- {
369
- return _inner . WriteLineAsync ( value ) ;
370
- }
280
+ Buffer . AppendHtml ( value ) ;
281
+ Buffer . AppendHtml ( NewLine ) ;
282
+ return Task . CompletedTask ;
371
283
}
372
284
373
285
/// <inheritdoc />
374
286
public override Task WriteLineAsync ( )
375
287
{
376
- if ( IsBuffering )
377
- {
378
- Buffer . AppendHtml ( NewLine ) ;
379
- return Task . CompletedTask ;
380
- }
381
- else
382
- {
383
- return _inner . WriteLineAsync ( ) ;
384
- }
288
+ Buffer . AppendHtml ( NewLine ) ;
289
+ return Task . CompletedTask ;
385
290
}
386
291
387
292
/// <summary>
388
293
/// Copies the buffered content to the unbuffered writer and invokes flush on it.
389
- /// Additionally causes this instance to no longer buffer and direct all write operations
390
- /// to the unbuffered writer.
391
294
/// </summary>
392
295
public override void Flush ( )
393
296
{
@@ -396,20 +299,16 @@ public override void Flush()
396
299
return ;
397
300
}
398
301
399
- if ( IsBuffering )
400
- {
401
- IsBuffering = false ;
402
- Buffer . WriteTo ( _inner , _htmlEncoder ) ;
403
- Buffer . Clear ( ) ;
404
- }
302
+ Flushed = true ;
303
+
304
+ Buffer . WriteTo ( _inner , _htmlEncoder ) ;
305
+ Buffer . Clear ( ) ;
405
306
406
307
_inner . Flush ( ) ;
407
308
}
408
309
409
310
/// <summary>
410
311
/// Copies the buffered content to the unbuffered writer and invokes flush on it.
411
- /// Additionally causes this instance to no longer buffer and direct all write operations
412
- /// to the unbuffered writer.
413
312
/// </summary>
414
313
/// <returns>A <see cref="Task"/> that represents the asynchronous copy and flush operations.</returns>
415
314
public override async Task FlushAsync ( )
@@ -419,12 +318,10 @@ public override async Task FlushAsync()
419
318
return ;
420
319
}
421
320
422
- if ( IsBuffering )
423
- {
424
- IsBuffering = false ;
425
- await Buffer . WriteToAsync ( _inner , _htmlEncoder ) ;
426
- Buffer . Clear ( ) ;
427
- }
321
+ Flushed = true ;
322
+
323
+ await Buffer . WriteToAsync ( _inner , _htmlEncoder ) ;
324
+ Buffer . Clear ( ) ;
428
325
429
326
await _inner . FlushAsync ( ) ;
430
327
}
0 commit comments