HttpHandler.db.cs 1.1 KB

12345678910111213141516171819202122232425262728293031323334
  1. using BeetleX;
  2. using BeetleX.Buffers;
  3. using SpanJson;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8. namespace PlatformBenchmarks
  9. {
  10. public partial class HttpHandler
  11. {
  12. public async ValueTask db(PipeStream stream, HttpToken token, ISession session)
  13. {
  14. try
  15. {
  16. var data = await token.Db.LoadSingleQueryRow();
  17. stream.Write(_jsonResultPreamble.Data, 0, _jsonResultPreamble.Length);
  18. token.ContentLength = stream.Allocate(HttpHandler._LengthSize);
  19. GMTDate.Default.Write(stream);
  20. token.ContentPostion = stream.CacheLength;
  21. System.Text.Json.JsonSerializer.Serialize<World>(GetUtf8JsonWriter(stream, token), data, SerializerOptions);
  22. }
  23. catch (Exception e_)
  24. {
  25. HttpServer.ApiServer.Log(BeetleX.EventArgs.LogType.Error, null, $"db error {e_.Message}@{e_.StackTrace}");
  26. stream.Write(e_.Message);
  27. }
  28. OnCompleted(stream, session, token);
  29. }
  30. }
  31. }