using System.Net.Http; using System.Web.Http.OData.Builder; //using System.Web.UI.WebControls; using System.Web.Http.OData.Extensions; using System.Web.Http.OData.Routing; using System.Web.Http.Routing; using iBemsDataService; using iBemsDataService.Controllers; using iBemsDataService.Model; using Microsoft.Data.OData; using Newtonsoft.Json; using System; //using System.Collections.Generic; //using System.Linq; using System.Net.Http.Formatting; using System.Net.Http.Headers; using System.Web.Http; using System.Web.Http.OData; using RouteParameter = System.Web.Http.RouteParameter; namespace WebODataDataService { public class BrowserJsonFormatter : JsonMediaTypeFormatter { public BrowserJsonFormatter() { this.SerializerSettings.Formatting = Formatting.Indented; this.SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/html")); } public override void SetDefaultContentHeaders(Type type, HttpContentHeaders headers, MediaTypeHeaderValue mediaType) { base.SetDefaultContentHeaders(type, headers, mediaType); headers.ContentType = new MediaTypeHeaderValue("application/json"); } } public static class WebApiConfig { public static void Register(HttpConfiguration config) { config.Formatters.Add(new BrowserJsonFormatter()); config.MapHttpAttributeRoutes(); config.Routes.MapHttpRoute( name: "DefaultApiWithAction", routeTemplate: "api/{controller}/{action}" ); config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional } ); //config.Routes.MapHttpRoute( "DefaultApiWithId" , "api/{controller}/{id}" , new { id = RouteParameter.Optional } , new { id = @"\d+" } ); //config.Routes.MapHttpRoute( "DefaultApiWithAction" , "api/{controller}/{action}" ); //config.Routes.MapHttpRoute( "DefaultApiGet" , "api/{controller}" , new { action = "Get" } , new { httpMethod = new HttpMethodConstraint( HttpMethod.Get ) } ); //config.Routes.MapHttpRoute( "DefaultApiPost" , "api/{controller}" , new { action = "Post" } , new { httpMethod = new HttpMethodConstraint( HttpMethod.Post ) } ); //config.Routes.MapHttpRoute( // name: "DefaultApiWithAction" , // routeTemplate: "api/{controller}/{action}" //); //config.Routes.MapHttpRoute( // name: "DefaultApi" , // routeTemplate: "api/{controller}/{id}" , // defaults: null //); var builder = new ODataConventionModelBuilder(); builder.EntitySet<AvailableDueDateType>("AvailableDueDate"); builder.EntitySet<Facility>("Facility"); builder.EntitySet<TargetFacility>("CheckGroupTargetFacility"); builder.EntitySet<CmFacility>("Facilities"); builder.EntitySet<BemsMonitoringPoint>("BemsMonitoringPoint"); builder.EntitySet<BemsServiceType>("BemsServiceType"); builder.EntitySet<BemsFuelType>("BemsFuelType"); builder.EntitySet<BemsFacilityType>("BemsFacilityType"); builder.EntitySet<BemsFormulaBase>("BemsFormulaBase"); builder.EntitySet<BemsFormula>("BemsFormula"); builder.EntitySet<BemsReportFormat>("BemsReportFormat"); builder.EntitySet<BemsReportHistory>("BemsReportHistory"); builder.EntitySet<BemsFormulaParameter>("BemsFormulaParameter"); builder.EntitySet<BemsFormulaTable>("BemsFormulaTable"); builder.EntitySet<BemsFormulaTableValue>("BemsFormulaTableValue"); builder.EntitySet<BemsFactorToe>("BemsFactorToe"); builder.EntitySet<BemsFactorCo2>("BemsFactorCo2"); builder.EntitySet<BemsMonitoringPointBaseData>("BemsMonitoringPointBaseData"); builder.EntitySet<BemsMonitoringPointConfig>("BemsMonitoringPointConfig"); builder.EntitySet<BemsMonitoringPointHistory15min>("BemsMonitoringPointHistory15min"); builder.EntitySet<BemsMonitoringPointHistory15minRawData>("BemsMonitoringPointHistory15minRawData"); builder.EntitySet<BemsMonitoringPointHistoryDaily>("BemsMonitoringPointHistoryDaily"); builder.EntitySet<BemsMonitoringPointHistoryHourly>("BemsMonitoringPointHistoryHourly"); builder.EntitySet<BemsMonitoringPointToAnlaysisType>("BemsMonitoringPointToAnlaysisType"); //builder.EntitySet<BemsMonitoringPointToLocation>( "BemsMonitoringPointToLocation" ); // builder.EntitySet<BemsMonitoringPointToController>( "BemsMonitoringPointToController" ); builder.EntitySet<BemsAnalysisType>("BemsAnalysisType"); builder.EntitySet<BemsPriceType>("BemsPriceType"); builder.EntitySet<BemsPriceMeta>("BemsPriceMeta"); builder.EntitySet<BemsPriceCode>("BemsPriceCode"); builder.EntitySet<BemsSitePrice>("BemsSitePrice"); builder.EntitySet<BemsSitePriceHistory>("BemsSitePriceHistory"); builder.EntitySet<BemsPriceFormula>("BemsPriceFormula"); builder.EntitySet<BemsReportFormat>("BemsReportFormat"); builder.EntitySet<BemsReportHistory>("BemsReportHistory"); builder.EntitySet<BemsRentalRate>("BemsRentalRate"); builder.EntitySet<BemsPeopleIncrease>("BemsPeopleIncrease"); builder.EntitySet<BemsAlarmSetting>("BemsAlarmSetting"); builder.EntitySet<BemsEnergyCost>("BemsEnergyCost"); builder.EntitySet<BemsAlarmLog>("BemsAlarmLog"); builder.EntitySet<BemsAlarmGroup>("BemsAlarmGroup"); builder.EntitySet<BemsAlarmGroupUser>("BemsAlarmGroupUser"); builder.EntitySet<BemsFloorPlan>("BemsFloorPlan"); builder.EntitySet<BemsFloorStatus>("BemsFloorStatus"); builder.EntitySet<CmHoliday>("CmHoliday"); builder.EntitySet<CmHolidayCustom>("CmHolidayCustom"); builder.EntitySet<CmHolidayWeekend>("CmHolidayWeekend"); builder.EntitySet<CmBusinessField>("CmBusinessField"); builder.EntitySet<CmSite>("CmSite"); var entity = builder.EntitySet<CmFile>("CmFile"); builder.EntitySet<CmFileCategory>("CmFileCategory"); builder.EntitySet<CmBuilding>("CmBuilding"); builder.EntitySet<CmFloor>("CmFloor"); builder.EntitySet<CmZone>("CmZone"); builder.EntitySet<CmUser>("CmUser"); builder.EntitySet<CmUserToLicense>("CmUserToLicense"); builder.EntitySet<CmCompany>("CmCompany"); builder.EntitySet<CmDepartment>("CmDepartment"); builder.EntitySet<CmCompanyType>("CmCompanyType"); builder.EntitySet<CmPosition>("CmPosition"); builder.EntitySet<CmUserGroup>("CmUserGroup"); builder.EntitySet<CmUserGroupPermission>("CmUserGroupPermission"); builder.EntitySet<CmFacilityFile>("CmFacilityFile"); builder.EntitySet<FmsFacilityCheckItem>("FmsFacilityCheckItem"); builder.EntitySet<FmsFacilityManual>("FmsFacilityManual"); builder.EntitySet<FmsLicense>("FmsLicense"); //builder.EntitySet<FmsWorkOperationItem>( "FmsWorkOperationItem" ); //builder.EntitySet<FmsWorkOperationTime>( "FmsWorkOperationTime" ); builder.EntitySet<FmsDrawingHistory>("FmsDrawingHistory"); builder.EntitySet<FmsDrawingCodeType>("FmsDrawingCodeType"); builder.EntitySet<FmsMaterialCodeAdjustmentType>("FmsMaterialCodeAdjustmentType"); builder.EntitySet<FmsDrawing>("FmsDrawing"); builder.EntitySet<FmsDrawingCodeGroup>("FmsDrawingCodeGroup"); builder.EntitySet<FmsWorkSchedule>("FmsWorkSchedule"); builder.EntitySet<FmsWorkScheduleToFacility>("FmsWorkScheduleToFacility"); builder.EntitySet<FmsWorkResultLaw>("FmsWorkResultLaw"); builder.EntitySet<FmsWorkResultFile>("FmsWorkResultFile"); builder.EntitySet<FmsWorkResultCheckItem>("FmsWorkResultCheckItem"); //builder.EntitySet<FmsWorkDailyRecordPrevention>( "FmsWorkDailyRecordPrevention" ); //builder.EntitySet<FmsWorkDailyRecordWork>( "FmsWorkDailyRecordWork" ); //builder.EntitySet<FmsWorkDailyRecord>( "FmsWorkDailyRecord" ); //builder.EntitySet<FmsWorkDailyRecordTemplate>( "FmsWorkDailyRecordTemplate" ); builder.EntitySet<FmsWorkCodeCauseClass>("FmsWorkCauseClass"); builder.EntitySet<FmsWorkResult>("FmsWorkResult"); builder.EntitySet<FmsWorkResultToFacility>("FmsWorkResultToFacility"); builder.EntitySet<FmsWorkOrder>("FmsWorkOrder"); builder.EntitySet<FmsWorkCodeProgress>("FmsWorkCodeProgress"); builder.EntitySet<FmsWorkCodeType>("FmsWorkCodeType"); builder.EntitySet<FmsWorkResultCheckItemMaterial>("FmsWorkResultCheckItemMaterial"); builder.EntitySet<FmsWorkCodeEmergency>("FmsWorkCodeEmergency"); builder.EntitySet<FmsWorkCodeCycleUnit>("FmsWorkCodeCycleUnit"); builder.EntitySet<FmsWorkCodeHolidayWorkType>("FmsWorkCodeHolidayWorkType"); builder.EntitySet<FmsWorkCodeLegalInspectionAgency>("FmsWorkCodeLegalInspectionAgency"); builder.EntitySet<FmsFacilityCodeClass>("FmsFacilityClass"); builder.EntitySet<FmsFacilityOperationItem>("FmsFacilityOperationItem"); builder.EntitySet<FmsMaterial>("FmsMaterial"); builder.EntitySet<FmsMaterialCarriedForward>("FmsMaterialCarriedForward"); builder.EntitySet<FmsMaterialCodeClass>("FmsMaterialCodeClass"); builder.EntitySet<FmsMaterialCodeLocation>("FmsMaterialCodeLocation"); builder.EntitySet<FmsMaterialCodeProgress>("FmsMaterialCodeProgress"); builder.EntitySet<FmsMaterialCodeType>("FmsMaterialCodeType"); builder.EntitySet<FmsMaterialCodePurchaseType>("FmsMaterialCodePurchaseType"); builder.EntitySet<FmsMaterialCodeReleaseType>("FmsMaterialCodeReleaseType"); builder.EntitySet<FmsMaterialPurchaseOrder>("FmsMaterialPurchaseOrder"); // builder.EntitySet<FmsMaterialPurchaseOrderFile>( "FmsMaterialPurchaseOrderFile" ); builder.EntitySet<FmsMaterialPurchaseOrderMaterial>("FmsMaterialPurchaseOrderMaterial"); builder.EntitySet<FmsMaterialPurchaseRequest>("FmsMaterialPurchaseRequest"); builder.EntitySet<FmsMaterialPurchaseRequestMaterial>("FmsMaterialPurchaseRequestMaterial"); builder.EntitySet<FmsMaterialRelease>("FmsMaterialRelease"); builder.EntitySet<FmsMaterialStored>("FmsMaterialStored"); builder.EntitySet<FmsMaterialTradeCompany>("FmsMaterialTradeCompany"); builder.EntitySet<FmsMaterialWarehouse>("FmsMaterialWarehouse"); //builder.EntitySet<FmsWorkDailyRecordWorkingHour>( "FmsWorkDailyRecordWorkingHour" ); //builder.EntitySet<FmsWorkOperationDate>( "FmsWorkOperationDate" ); builder.EntitySet<FmsWorkOrderToFacility>("FmsWorkOrderToFacility"); builder.EntitySet<FmsWorkRequest>("FmsWorkRequest"); builder.EntitySet<FmsWorkRequestToFacility>("FmsWorkRequestToFacility"); builder.EntitySet<MonitoringPointEx>("MonitoringPoint"); builder.EntitySet<FmsConstruction>("FmsConstruction"); builder.EntitySet<FmsConstructionEstimation>("FmsConstructionEstimation"); builder.EntitySet<FmsConstructionCodeProgress>("FmsConstructionCodeProgress"); builder.EntitySet<FmsConstructionCodeType>("FmsConstructionCodeType"); builder.EntitySet<FmsCompanyEstimationCodeClass>("FmsCompanyEstimationCodeClass"); builder.EntitySet<CmPartner>("CmPartner"); builder.EntitySet<CmPartnerType>("CmPartnerType"); builder.EntitySet<FmsAccidentCodeType>("FmsAccidentCodeType"); builder.EntitySet<FmsAccident>("FmsAccident"); builder.EntitySet<FmsEquipmentCodeType>("FmsEquipmentCodeType"); builder.EntitySet<FmsEquipmentCodeStateType>("FmsEquipmentCodeStateType"); builder.EntitySet<FmsEquipment>("FmsEquipment"); builder.EntitySet<FmsEquipmentHistory>("FmsEquipmentHistory"); builder.EntitySet<FmsEquipmentRentInfo>("FmsEquipmentRentInfo"); builder.EntitySet<FmsEquipmentEx>("FmsEquipmentEx"); builder.EntitySet<FmsBudgetDetailExecutionEx>("FmsBudgetDetailExecutionEx"); builder.EntitySet<FmsContract>("FmsContract"); builder.EntitySet<FmsContractClass>("FmsContractClass"); builder.EntitySet<FmsContractMethod>("FmsContractMethod"); builder.EntitySet<FmsContractType>("FmsContractType"); builder.EntitySet<FmsPaymentType>("FmsPaymentType"); builder.EntitySet<FmsManual>("FmsManual"); builder.EntitySet<FmsManualType>("FmsManualType"); builder.EntitySet<FmsManualHistory>("FmsManualHistory"); builder.EntitySet<FmsMaterialEx>("FmsMaterialEx"); builder.EntitySet<FmsMaterialPurchaseRequestEx>("FmsMaterialPurchaseRequestEx"); builder.EntitySet<FmsMaterialStockHistoryDaily>("FmsMaterialStockHistoryDaily"); builder.EntitySet<FmsMaterialStockHistoryMonthly>("FmsMaterialStockHistoryMonthly"); builder.EntitySet<FmsMaterialStockHistoryAll>("FmsMaterialStockHistoryAll"); builder.EntitySet<FmsBudgetCodeClass>("FmsBudgetCodeClass"); builder.EntitySet<FmsBudget>("FmsBudget"); builder.EntitySet<FmsBudgetDetail>("FmsBudgetDetail"); builder.EntitySet<FmsBudgetDetailExecution>("FmsBudgetDetailExecution"); builder.EntitySet<FmsBudgetDetailExecution2>("FmsBudgetDetailExecution2"); builder.EntitySet<FmsBudgetCodeClassEx>("FmsBudgetCodeClassEx"); builder.EntitySet<BemsControlPointHistory>("BemsControlPointHistory"); builder.EntitySet<CmZoneTempHumiSet>("CmZoneTempHumiSet"); builder.EntitySet<CmFacilityTempSet>("CmFacilityTempSet"); builder.EntitySet<CmAlarmAdmin>("CmAlarmAdmin"); builder.EntitySet<CmAnnouncement>("CmAnnouncement"); builder.EntitySet<CmUserLoginHistory>("CmUserLoginHistory"); builder.EntitySet<FmsDailyReport>("FmsDailyReport"); builder.EntitySet<FmsFacilityOperationReport>("FmsFacilityOperationReport"); //builder.EntitySet<FmsFacilityTaskReport>("FmsFacilityTaskReport"); builder.EntitySet<FmsDailyCheckReport>("FmsDailyCheckReport"); builder.EntitySet<FmsMonthlyReport>("FmsMonthlyReport"); builder.EntitySet<FmsInvestmentCost>("FmsInvestmentCost"); // 2016 02 10 builder.EntitySet<CmPatrolType>("CmPatrolType"); builder.EntitySet<CmPatrolGroup>("CmPatrolGroup"); builder.EntitySet<CmPatrolGroupUser>("CmPatrolGroupUser"); builder.EntitySet<CmPatrolPos>("CmPatrolPos"); //2016 02 18 builder.EntitySet<CmPatrolCourse>("CmPatrolCourse"); builder.EntitySet<CmPatrolCoursePos>("CmPatrolCoursePos"); builder.EntitySet<CmPatrolPlan>("CmPatrolPlan"); builder.EntitySet<CmPatrolHistory>("CmPatrolHistory"); builder.EntitySet<CmPatrolHistoryPos>("CmPatrolHistoryPos"); builder.EntitySet<CmPatrolHistoryEx>("CmPatrolHistoryEx"); builder.EntitySet<BemsEnergyConfigPercentMonth>("BemsEnergyConfigPercentMonth"); builder.EntitySet<BemsEnergyConfigPercentWeek>("BemsEnergyConfigPercentWeek"); builder.EntitySet<BemsEnergyDaily>("BemsEnergyDaily"); builder.EntitySet<BemsEnergyDailyRegression>("BemsEnergyDailyRegression"); //builder.EntitySet<BemsEnergyGoalDaily>("BemsEnergyGoalDaily"); builder.EntitySet<BemsPeakHistoryDaily>("BemsPeakHistoryDaily"); builder.EntitySet<BemsPeakHistory>("BemsPeakHistory"); builder.EntitySet<BemsPeakInfo>("BemsPeakInfo"); //2016 04 11 builder.EntitySet<CmPatrolSchedule>("CmPatrolSchedule"); //builder.EntitySet<BemsNoticePrice>("BemsNoticePrice"); builder.EntitySet<BemsNoticePriceBase>("BemsNoticePriceBase"); builder.EntitySet<BemsNoticePriceContractType>("BemsNoticePriceContractType"); builder.EntitySet<BemsNoticePriceDetail>("BemsNoticePriceDetail"); builder.EntitySet<BemsPeakFacility>("BemsPeakFacility"); //2016 07 26 builder.EntitySet<FmsReport>("FmsReport"); //2018 01 19 builder.EntitySet<CmMenu>("CmMenu"); //2018 02 23 builder.EntitySet<BemsChartInfo>("BemsChartInfo"); builder.EntitySet<BemsControlAHUTempConfig>("BemsControlAHUTempConfig"); var model = builder.GetEdmModel(); config.Routes.MapODataRoute("odata", "odata", model); //builder = new ODataConventionModelBuilder(); //builder.EntitySet<PointWithLocation>( "PointWithLocation" ); //config.Routes.MapODataServiceRoute( "api" , "api" , builder.GetEdmModel() ); //entity.EntityType.HasKey( ) //model.SetHasDefaultStream( ); } } }