| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317 | 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( );        }    }}
 |