public override async Task WriteAsync(byte[] buffer, int offset, int count, CancellationToken cancellationToken) { if (_contextProvider.GetContexts().Count > 0) { FragmentResponseFilterContext filterContext = new FragmentResponseFilterContext { ResponseHtml = Encoding.Default.GetString(buffer.Take(count).ToArray()), FlushIndex = FlusIndex, BodyStream = BodyStream }; _responseFilters?.ForEach(f => f.OnRendering(filterContext)); byte[] responseBytes = Encoding.Default.GetBytes(filterContext.ResponseHtml); _logger.Info($"Chunk size : {responseBytes.Length}"); await BodyStream.WriteAsync(responseBytes, offset, responseBytes.Length, cancellationToken); await FlushAsync(cancellationToken); _responseFilters?.ForEach(f => f.OnRendered(filterContext)); } else { await BodyStream.WriteAsync(buffer, offset, count, cancellationToken); } }
public virtual void OnRendered(FragmentResponseFilterContext context) { }