/Tests/Test.WebApi2.EF6/Controllers/ProduceTPHController.cs
C# | 97 lines | 66 code | 30 blank | 1 comment | 0 complexity | 2ab2b5e045f4195b720a8578fe4e10af MD5 | raw file
- //#define NHIBERNATE
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Web.Http;
- using Breeze.ContextProvider;
- using Breeze.WebApi2;
- using Newtonsoft.Json.Linq;
- #if NHIBERNATE
- using Breeze.ContextProvider.NH;
- using Models.Produce.NH;
- using NHibernate;
- using NHibernate.Linq;
- #else
- using Breeze.ContextProvider.EF6;
- using ProduceTPH;
- #endif
- namespace Sample_WebApi2.Controllers {
-
- #if NHIBERNATE
- public class ProduceTPHContextProvider : ProduceNHContext {
- #else
- public class ProduceTPHContextProvider : EFContextProvider<ProduceTPHContext> {
- public new ProduceTPHContext Context = new ProduceTPHContext();
- #endif
-
- protected override bool BeforeSaveEntity(EntityInfo entityInfo) {
- return true;
- }
- protected override Dictionary<Type, List<EntityInfo>> BeforeSaveEntities(Dictionary<Type, List<EntityInfo>> saveMap) {
- return saveMap;
- }
- protected override void SaveChangesCore(SaveWorkState saveWorkState) {
- throw new NotImplementedException();
- }
- }
- [BreezeController]
- public class ProduceTPHController : ApiController {
- ProduceTPHContextProvider ContextProvider = new ProduceTPHContextProvider();
- [HttpGet]
- public String Metadata() {
- #if NHIBERNATE
- return ContextProvider.GetHardcodedMetadata();
- #else
- return ContextProvider.Metadata();
- #endif
- }
- [HttpPost]
- public SaveResult SaveChanges(JObject saveBundle) {
- return ContextProvider.SaveChanges(saveBundle);
- }
- #region standard queries
- [HttpGet]
- public IQueryable<ItemOfProduce> ItemsOfProduce() {
- return ContextProvider.Context.ItemsOfProduce;
- }
- [HttpGet]
- public IQueryable<Fruit> Fruits() {
- return ContextProvider.Context.ItemsOfProduce.OfType<Fruit>();
- }
- [HttpGet]
- public IQueryable<Apple> Apples() {
- return ContextProvider.Context.ItemsOfProduce.OfType<Apple>();
- }
- #endregion
- #region named queries
- #endregion
- }
-
- }