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("AvailableDueDate"); builder.EntitySet("Facility"); builder.EntitySet("CheckGroupTargetFacility"); builder.EntitySet("Facilities"); builder.EntitySet("BemsMonitoringPoint"); builder.EntitySet("BemsServiceType"); builder.EntitySet("BemsFuelType"); builder.EntitySet("BemsFacilityType"); builder.EntitySet("BemsFormulaBase"); builder.EntitySet("BemsFormula"); builder.EntitySet("BemsReportFormat"); builder.EntitySet("BemsReportHistory"); builder.EntitySet("BemsFormulaParameter"); builder.EntitySet("BemsFormulaTable"); builder.EntitySet("BemsFormulaTableValue"); builder.EntitySet("BemsFactorToe"); builder.EntitySet("BemsFactorCo2"); builder.EntitySet("BemsMonitoringPointBaseData"); builder.EntitySet("BemsMonitoringPointConfig"); builder.EntitySet("BemsMonitoringPointHistory15min"); builder.EntitySet("BemsMonitoringPointHistory15minRawData"); builder.EntitySet("BemsMonitoringPointHistoryDaily"); builder.EntitySet("BemsMonitoringPointHistoryHourly"); builder.EntitySet("BemsMonitoringPointToAnlaysisType"); //builder.EntitySet( "BemsMonitoringPointToLocation" ); // builder.EntitySet( "BemsMonitoringPointToController" ); builder.EntitySet("BemsAnalysisType"); builder.EntitySet("BemsPriceType"); builder.EntitySet("BemsPriceMeta"); builder.EntitySet("BemsPriceCode"); builder.EntitySet("BemsSitePrice"); builder.EntitySet("BemsSitePriceHistory"); builder.EntitySet("BemsPriceFormula"); builder.EntitySet("BemsReportFormat"); builder.EntitySet("BemsReportHistory"); builder.EntitySet("BemsRentalRate"); builder.EntitySet("BemsPeopleIncrease"); builder.EntitySet("BemsAlarmSetting"); builder.EntitySet("BemsEnergyCost"); builder.EntitySet("BemsAlarmLog"); builder.EntitySet("BemsAlarmGroup"); builder.EntitySet("BemsAlarmGroupUser"); builder.EntitySet("BemsFloorPlan"); builder.EntitySet("BemsFloorStatus"); builder.EntitySet("CmHoliday"); builder.EntitySet("CmHolidayCustom"); builder.EntitySet("CmHolidayWeekend"); builder.EntitySet("CmBusinessField"); builder.EntitySet("CmSite"); var entity = builder.EntitySet("CmFile"); builder.EntitySet("CmFileCategory"); builder.EntitySet("CmBuilding"); builder.EntitySet("CmFloor"); builder.EntitySet("CmZone"); builder.EntitySet("CmUser"); builder.EntitySet("CmUserToLicense"); builder.EntitySet("CmCompany"); builder.EntitySet("CmDepartment"); builder.EntitySet("CmCompanyType"); builder.EntitySet("CmPosition"); builder.EntitySet("CmUserGroup"); builder.EntitySet("CmUserGroupPermission"); builder.EntitySet("CmFacilityFile"); builder.EntitySet("FmsFacilityCheckItem"); builder.EntitySet("FmsFacilityManual"); builder.EntitySet("FmsLicense"); //builder.EntitySet( "FmsWorkOperationItem" ); //builder.EntitySet( "FmsWorkOperationTime" ); builder.EntitySet("FmsDrawingHistory"); builder.EntitySet("FmsDrawingCodeType"); builder.EntitySet("FmsMaterialCodeAdjustmentType"); builder.EntitySet("FmsDrawing"); builder.EntitySet("FmsDrawingCodeGroup"); builder.EntitySet("FmsWorkSchedule"); builder.EntitySet("FmsWorkScheduleToFacility"); builder.EntitySet("FmsWorkResultLaw"); builder.EntitySet("FmsWorkResultFile"); builder.EntitySet("FmsWorkResultCheckItem"); //builder.EntitySet( "FmsWorkDailyRecordPrevention" ); //builder.EntitySet( "FmsWorkDailyRecordWork" ); //builder.EntitySet( "FmsWorkDailyRecord" ); //builder.EntitySet( "FmsWorkDailyRecordTemplate" ); builder.EntitySet("FmsWorkCauseClass"); builder.EntitySet("FmsWorkResult"); builder.EntitySet("FmsWorkResultToFacility"); builder.EntitySet("FmsWorkOrder"); builder.EntitySet("FmsWorkCodeProgress"); builder.EntitySet("FmsWorkCodeType"); builder.EntitySet("FmsWorkResultCheckItemMaterial"); builder.EntitySet("FmsWorkCodeEmergency"); builder.EntitySet("FmsWorkCodeCycleUnit"); builder.EntitySet("FmsWorkCodeHolidayWorkType"); builder.EntitySet("FmsWorkCodeLegalInspectionAgency"); builder.EntitySet("FmsFacilityClass"); builder.EntitySet("FmsFacilityOperationItem"); builder.EntitySet("FmsMaterial"); builder.EntitySet("FmsMaterialCarriedForward"); builder.EntitySet("FmsMaterialCodeClass"); builder.EntitySet("FmsMaterialCodeLocation"); builder.EntitySet("FmsMaterialCodeProgress"); builder.EntitySet("FmsMaterialCodeType"); builder.EntitySet("FmsMaterialCodePurchaseType"); builder.EntitySet("FmsMaterialCodeReleaseType"); builder.EntitySet("FmsMaterialPurchaseOrder"); // builder.EntitySet( "FmsMaterialPurchaseOrderFile" ); builder.EntitySet("FmsMaterialPurchaseOrderMaterial"); builder.EntitySet("FmsMaterialPurchaseRequest"); builder.EntitySet("FmsMaterialPurchaseRequestMaterial"); builder.EntitySet("FmsMaterialRelease"); builder.EntitySet("FmsMaterialStored"); builder.EntitySet("FmsMaterialTradeCompany"); builder.EntitySet("FmsMaterialWarehouse"); //builder.EntitySet( "FmsWorkDailyRecordWorkingHour" ); //builder.EntitySet( "FmsWorkOperationDate" ); builder.EntitySet("FmsWorkOrderToFacility"); builder.EntitySet("FmsWorkRequest"); builder.EntitySet("FmsWorkRequestToFacility"); builder.EntitySet("MonitoringPoint"); builder.EntitySet("FmsConstruction"); builder.EntitySet("FmsConstructionEstimation"); builder.EntitySet("FmsConstructionCodeProgress"); builder.EntitySet("FmsConstructionCodeType"); builder.EntitySet("FmsCompanyEstimationCodeClass"); builder.EntitySet("CmPartner"); builder.EntitySet("CmPartnerType"); builder.EntitySet("FmsAccidentCodeType"); builder.EntitySet("FmsAccident"); builder.EntitySet("FmsEquipmentCodeType"); builder.EntitySet("FmsEquipmentCodeStateType"); builder.EntitySet("FmsEquipment"); builder.EntitySet("FmsEquipmentHistory"); builder.EntitySet("FmsEquipmentRentInfo"); builder.EntitySet("FmsEquipmentEx"); builder.EntitySet("FmsBudgetDetailExecutionEx"); builder.EntitySet("FmsContract"); builder.EntitySet("FmsContractClass"); builder.EntitySet("FmsContractMethod"); builder.EntitySet("FmsContractType"); builder.EntitySet("FmsPaymentType"); builder.EntitySet("FmsManual"); builder.EntitySet("FmsManualType"); builder.EntitySet("FmsManualHistory"); builder.EntitySet("FmsMaterialEx"); builder.EntitySet("FmsMaterialPurchaseRequestEx"); builder.EntitySet("FmsMaterialStockHistoryDaily"); builder.EntitySet("FmsMaterialStockHistoryMonthly"); builder.EntitySet("FmsMaterialStockHistoryAll"); builder.EntitySet("FmsBudgetCodeClass"); builder.EntitySet("FmsBudget"); builder.EntitySet("FmsBudgetDetail"); builder.EntitySet("FmsBudgetDetailExecution"); builder.EntitySet("FmsBudgetDetailExecution2"); builder.EntitySet("FmsBudgetCodeClassEx"); builder.EntitySet("BemsControlPointHistory"); builder.EntitySet("CmZoneTempHumiSet"); builder.EntitySet("CmFacilityTempSet"); builder.EntitySet("CmAlarmAdmin"); builder.EntitySet("CmAnnouncement"); builder.EntitySet("CmUserLoginHistory"); builder.EntitySet("FmsDailyReport"); builder.EntitySet("FmsFacilityOperationReport"); //builder.EntitySet("FmsFacilityTaskReport"); builder.EntitySet("FmsDailyCheckReport"); builder.EntitySet("FmsMonthlyReport"); builder.EntitySet("FmsInvestmentCost"); // 2016 02 10 builder.EntitySet("CmPatrolType"); builder.EntitySet("CmPatrolGroup"); builder.EntitySet("CmPatrolGroupUser"); builder.EntitySet("CmPatrolPos"); //2016 02 18 builder.EntitySet("CmPatrolCourse"); builder.EntitySet("CmPatrolCoursePos"); builder.EntitySet("CmPatrolPlan"); builder.EntitySet("CmPatrolHistory"); builder.EntitySet("CmPatrolHistoryPos"); builder.EntitySet("CmPatrolHistoryEx"); builder.EntitySet("BemsEnergyConfigPercentMonth"); builder.EntitySet("BemsEnergyConfigPercentWeek"); builder.EntitySet("BemsEnergyDaily"); builder.EntitySet("BemsEnergyDailyRegression"); //builder.EntitySet("BemsEnergyGoalDaily"); builder.EntitySet("BemsPeakHistoryDaily"); builder.EntitySet("BemsPeakHistory"); builder.EntitySet("BemsPeakInfo"); //2016 04 11 builder.EntitySet("CmPatrolSchedule"); //builder.EntitySet("BemsNoticePrice"); builder.EntitySet("BemsNoticePriceBase"); builder.EntitySet("BemsNoticePriceContractType"); builder.EntitySet("BemsNoticePriceDetail"); builder.EntitySet("BemsPeakFacility"); //2016 07 26 builder.EntitySet("FmsReport"); //2018 01 19 builder.EntitySet("CmMenu"); //2018 02 23 builder.EntitySet("BemsChartInfo"); builder.EntitySet("BemsControlAHUTempConfig"); var model = builder.GetEdmModel(); config.Routes.MapODataRoute("odata", "odata", model); //builder = new ODataConventionModelBuilder(); //builder.EntitySet( "PointWithLocation" ); //config.Routes.MapODataServiceRoute( "api" , "api" , builder.GetEdmModel() ); //entity.EntityType.HasKey( ) //model.SetHasDefaultStream( ); } } }