PageRenderTime 24ms CodeModel.GetById 29ms RepoModel.GetById 1ms app.codeStats 0ms

/Tests/Test.WebApi2.EF6/Controllers/ProduceTPHController.cs

https://github.com/WilliamBZA/breeze.server.net
C# | 97 lines | 66 code | 30 blank | 1 comment | 0 complexity | 2ab2b5e045f4195b720a8578fe4e10af MD5 | raw file
  1. //#define NHIBERNATE
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Web.Http;
  6. using Breeze.ContextProvider;
  7. using Breeze.WebApi2;
  8. using Newtonsoft.Json.Linq;
  9. #if NHIBERNATE
  10. using Breeze.ContextProvider.NH;
  11. using Models.Produce.NH;
  12. using NHibernate;
  13. using NHibernate.Linq;
  14. #else
  15. using Breeze.ContextProvider.EF6;
  16. using ProduceTPH;
  17. #endif
  18. namespace Sample_WebApi2.Controllers {
  19. #if NHIBERNATE
  20. public class ProduceTPHContextProvider : ProduceNHContext {
  21. #else
  22. public class ProduceTPHContextProvider : EFContextProvider<ProduceTPHContext> {
  23. public new ProduceTPHContext Context = new ProduceTPHContext();
  24. #endif
  25. protected override bool BeforeSaveEntity(EntityInfo entityInfo) {
  26. return true;
  27. }
  28. protected override Dictionary<Type, List<EntityInfo>> BeforeSaveEntities(Dictionary<Type, List<EntityInfo>> saveMap) {
  29. return saveMap;
  30. }
  31. protected override void SaveChangesCore(SaveWorkState saveWorkState) {
  32. throw new NotImplementedException();
  33. }
  34. }
  35. [BreezeController]
  36. public class ProduceTPHController : ApiController {
  37. ProduceTPHContextProvider ContextProvider = new ProduceTPHContextProvider();
  38. [HttpGet]
  39. public String Metadata() {
  40. #if NHIBERNATE
  41. return ContextProvider.GetHardcodedMetadata();
  42. #else
  43. return ContextProvider.Metadata();
  44. #endif
  45. }
  46. [HttpPost]
  47. public SaveResult SaveChanges(JObject saveBundle) {
  48. return ContextProvider.SaveChanges(saveBundle);
  49. }
  50. #region standard queries
  51. [HttpGet]
  52. public IQueryable<ItemOfProduce> ItemsOfProduce() {
  53. return ContextProvider.Context.ItemsOfProduce;
  54. }
  55. [HttpGet]
  56. public IQueryable<Fruit> Fruits() {
  57. return ContextProvider.Context.ItemsOfProduce.OfType<Fruit>();
  58. }
  59. [HttpGet]
  60. public IQueryable<Apple> Apples() {
  61. return ContextProvider.Context.ItemsOfProduce.OfType<Apple>();
  62. }
  63. #endregion
  64. #region named queries
  65. #endregion
  66. }
  67. }