QueryResource.cs 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using Benchmarks.Model;
  5. using GenHTTP.Modules.Webservices;
  6. namespace Benchmarks.Tests
  7. {
  8. public sealed class QueryResource
  9. {
  10. private static Random _Random = new Random();
  11. [ResourceMethod(":queries")]
  12. public List<World> GetWorldsFromPath(string queries) => GetWorlds(queries);
  13. [ResourceMethod]
  14. public List<World> GetWorlds(string queries)
  15. {
  16. var count = 1;
  17. int.TryParse(queries, out count);
  18. if (count < 1) count = 1;
  19. else if (count > 500) count = 500;
  20. var result = new List<World>(count);
  21. using var context = DatabaseContext.CreateNoTracking();
  22. for (int _ = 0; _ < count; _++)
  23. {
  24. var id = _Random.Next(1, 10001);
  25. result.Add(context.World.First(w => w.Id == id));
  26. }
  27. return result;
  28. }
  29. }
  30. }