MongoDBController.cs 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Configuration;
  4. using System.Linq;
  5. using System.Web.Mvc;
  6. using MongoDB.Driver.Builders;
  7. using Benchmarks.AspNet.Models;
  8. namespace Benchmarks.AspNet.Controllers
  9. {
  10. public class MongoDBController : Controller
  11. {
  12. Random random = new Random();
  13. public ActionResult Index(int? queries)
  14. {
  15. List<World> worlds = new List<World>(Math.Max(1, Math.Min(500, queries ?? 1)));
  16. Models.MongoDB db = new Models.MongoDB("MongoDB");
  17. for (int i = 0; i < worlds.Capacity; i++)
  18. {
  19. int randomID = random.Next(0, 10000) + 1;
  20. worlds.Add(db.Worlds.FindOne(Query<World>.EQ(w => w.id, randomID)));
  21. }
  22. return queries != null ? Json(worlds, JsonRequestBehavior.AllowGet)
  23. : Json(worlds[0], JsonRequestBehavior.AllowGet);
  24. }
  25. public ActionResult Fortunes()
  26. {
  27. Models.MongoDB db = new Models.MongoDB("MongoDB");
  28. List<Fortune> fortunes = db.Fortunes.FindAll().ToList();
  29. fortunes.Add(new Fortune { ID = 0, Message = "Additional fortune added at request time." });
  30. fortunes.Sort();
  31. return View("Fortunes", fortunes);
  32. }
  33. public ActionResult Update(int? queries)
  34. {
  35. Models.MongoDB db = new Models.MongoDB("MongoDB");
  36. List<World> worlds = new List<World>(Math.Max(1, Math.Min(500, queries ?? 1)));
  37. for (int i = 0; i < worlds.Capacity; i++)
  38. {
  39. int randomID = random.Next(0, 10000) + 1;
  40. int randomNumber = random.Next(0, 10000) + 1;
  41. World world = db.Worlds.FindOne(Query<World>.EQ(w => w.id, randomID));
  42. world.randomNumber = randomNumber;
  43. worlds.Add(world);
  44. db.Worlds.Save(world);
  45. }
  46. return Json(worlds, JsonRequestBehavior.AllowGet);
  47. }
  48. }
  49. }