using System.Collections.Generic; using System.IO.Pipelines; using System.Web; using Microsoft.AspNetCore.Http; using Microsoft.Extensions.Primitives; using PlatformBenchmarks; namespace appMpower { public static class FortunesView { private readonly static KeyValuePair _headerServer = new KeyValuePair("Server", "k"); private readonly static KeyValuePair _headerContentType = new KeyValuePair("Content-Type", "text/html; charset=UTF-8"); private readonly static AsciiString _fortunesTableStart = "Fortunes"; private readonly static AsciiString _fortunesRowStart = ""; private readonly static AsciiString _fortunesTableEnd = "
idmessage
"; private readonly static AsciiString _fortunesColumn = ""; private readonly static AsciiString _fortunesRowEnd = "
"; public static void Render(IHeaderDictionary headerDictionary, PipeWriter pipeWriter, List fortunes) { headerDictionary.Add(_headerServer); headerDictionary.Add(_headerContentType); var bufferWriter = new BufferWriter(new WriterAdapter(pipeWriter), 1600); bufferWriter.Write(_fortunesTableStart); foreach (var fortune in fortunes) { bufferWriter.Write(_fortunesRowStart); bufferWriter.WriteNumeric((uint)fortune.Id); bufferWriter.Write(_fortunesColumn); bufferWriter.WriteUtf8String(HttpUtility.HtmlEncode(fortune.Message)); bufferWriter.Write(_fortunesRowEnd); } bufferWriter.Write(_fortunesTableEnd); headerDictionary.Add(new KeyValuePair("Content-Length", bufferWriter.Buffered.ToString())); bufferWriter.Commit(); } } }