123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- using System;
- using System.Collections;
- using System.Collections.Generic;
- using System.Data.Entity;
- using System.Data.Entity.Infrastructure;
- using System.Linq;
- using System.Net;
- using System.Web;
- using System.Web.Http;
- using System.Web.Http.Description;
- using DevExpress.Office.Utils;
- using iBemsDataService.Model;
- using iBemsDataService.Util;
- using System.Web.Http.OData;
- namespace iBemsDataService.Controllers
- {
- public class MonitoringPointController : ODataController
- {
- private iBemsEntities db = new iBemsEntities();
- [Queryable]
- public IQueryable<MonitoringPointEx> GetMonitoringPoint()
- {
- var query = from p in db.BemsMonitoringPoint
- from facility in db.CmFacility
- where p.SiteId == facility.SiteId && p.FacilityCode == facility.FacilityCode
- join b in db.CmBuilding on p.BuildingId equals b.BuildingId into groupBuilding
- from subBuilding in groupBuilding.DefaultIfEmpty() where p.SiteId == subBuilding.SiteId
-
- join z in db.CmZone on p.ZoneId equals z.ZoneId into groupZone
- from subZone in groupZone.DefaultIfEmpty()
- join f in db.CmFloor on p.FloorId equals f.FloorId into groupFloor
- from subFloor in groupFloor.DefaultIfEmpty()
- select new MonitoringPointEx
- {
- SiteId = p.SiteId,
- FacilityTypeId = p.FacilityTypeId,
- FacilityCode = p.FacilityCode,
- PropertyId = p.PropertyId,
- ValueType = p.ValueType,
- ServiceTypeId = p.ServiceTypeId,
- FuelTypeId = p.FuelTypeId,
- BuildingId = p.BuildingId ?? 0,
- FloorId = p.FloorId ?? 0,
- ZoneId = p.ZoneId ?? 0,
- Name = p.Name,
- Description = p.Description,
- FacilityName = facility.Name ,
- BuildingName = (subBuilding == null) ? string.Empty : subBuilding.Name ,
- ZoneName = (subZone == null) ? string.Empty : subZone.Name ,
- FloorName = (subFloor == null) ? string.Empty : subFloor.Name,
- Location = ((subBuilding == null) ? string.Empty : subBuilding.Name) + " " +
- ((subZone == null) ? string.Empty : subZone.Name) + " " +
- ((subFloor == null) ? string.Empty : subFloor.Name)
- };
- return query;
- }
- protected override void Dispose(bool disposing)
- {
- if (disposing)
- {
- db.Dispose();
- }
- base.Dispose(disposing);
- }
- }
- public class MonitoringPointEx
- {
- public int SiteId { get; set; }
- public int FacilityTypeId { get; set; }
- public int FacilityCode { get; set; }
- public int PropertyId { get; set; }
- public int ValueType { get; set; }
- public Nullable<short> ServiceTypeId { get; set; }
- public Nullable<short> FuelTypeId { get; set; }
- public int BuildingId { get; set; }
- public int FloorId { get; set; }
- public int ZoneId { get; set; }
- public string Name { get; set; }
- public string FacilityName { get; set; }
- public string BuildingName { get; set; }
- public string FloorName { get; set; }
- public string ZoneName { get; set; }
- public string Location { get; set; }
- public string Description{ get; set; }
- };
-
- }
|