123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 |
- using System;
- using System.Collections.Generic;
- using System.ComponentModel.DataAnnotations;
- using System.Data;
- using System.Data.Entity;
- using System.Data.Entity.Infrastructure;
- using System.Linq;
- using System.Net;
- using System.Net.Http;
- using System.Web;
- using System.Web.Http;
- using System.Web.Http.Description;
- using System.Web.Http.OData;
- using iBemsDataService;
- using iBemsDataService.Model;
- namespace iBemsDataService.Controllers
- {
- public class CheckGroupTargetFacilityController : ODataController
- {
- private iBemsEntities db = new iBemsEntities();
- // GET: odata/Facility
- [Queryable]
- public IQueryable<TargetFacility> GetCheckGroupTargetFacility()
- {
- // 2019.07.12
- Uri uri = Request.RequestUri;
- var uriQuery = HttpUtility.ParseQueryString(uri.Query);
- int siteId;
- if (int.TryParse(uriQuery.Get("SiteId"), out siteId) == false)
- {
- throw new Exception("Not Found Parameters.");
- }
- var query = from t in db.FmsWorkScheduleToFacility
- from f in db.CmFacility
- from mu in db.CmUser
- from su in db.CmUser
- from fc in db.FmsFacilityCodeClass
- from sc in db.FmsFacilityCodeClass
- from tc in db.FmsFacilityCodeClass
- join b in db.CmBuilding on f.BuildingId equals b.BuildingId into gb
- from subBuilding in gb.DefaultIfEmpty()
- join l in db.CmZone on f.ZoneId equals l.ZoneId into gl
- from subZone in gl.DefaultIfEmpty()
- join fl in db.CmFloor on f.FloorId equals fl.FloorId into gf
- from subFloor in gf.DefaultIfEmpty()
- join pf in db.CmFacility on f.ParentFacilityCode equals pf.FacilityCode into gpf
- from subParentFacility in gpf.DefaultIfEmpty()
- where t.SiteId == siteId && // 2019.07.12
- t.SiteId == f.SiteId &&
- t.FacilityCode == f.FacilityCode &&
- f.MainContactorUserId == mu.UserId &&
- f.SubContactorUserId == su.UserId &&
- f.FirstClassId == fc.FacilityClassId &&
- f.SecondClassId == sc.FacilityClassId &&
- f.ThirdClassId == tc.FacilityClassId
- select new TargetFacility
- {
- SiteId = f.SiteId ,
- WorkScheduleId = t.WorkScheduleId ,
- FacilityCode = f.FacilityCode ,
- FirstClassId = f.FirstClassId ,
- SecondClassId = f.SecondClassId ,
- ThirdClassId = f.ThirdClassId ,
- FirstClassName = fc.Name ,
- SecondClassName = sc.Name ,
- ThirdClassName = tc.Name ,
- Name = f.Name ,
- Nickname = f.Nickname ,
- ParentFacilityName = subParentFacility.Name ,
- ManufactureModel = f.ManufactureModel ,
- MainContactorUserName = mu.Name ,
- SubContactorUserName = su.Name ,
- BuildingName = (subBuilding.Name == null) ? string.Empty : subBuilding.Name ,
- ZoneName = (subZone.Name == null) ? string.Empty : subZone.Name ,
- FloorName = (subFloor.Name == null) ? string.Empty : subFloor.Name
- };
- return query;
- }
-
- protected override void Dispose(bool disposing)
- {
- if (disposing)
- {
- db.Dispose();
- }
- base.Dispose(disposing);
- }
- //private bool CheckGroupTargetFacilityExists( int id , string facilityCode )
- //{
- // return db.CmFacility.Count( e => e.SiteId == id && e.FacilityCode == facilityCode ) > 0;
- //}
- }
- public class TargetFacility
- {
- public TargetFacility()
- {
- }
- [Key]
- public int SiteId { get; set; }
- [Key]
- public int WorkScheduleId { get; set; }
- public int FacilityType { get; set; }
- [Key]
- public int FacilityCode { get; set; }
- public Nullable<int> FirstClassId { get; set; }
- public Nullable<int> SecondClassId { get; set; }
- public Nullable<int> ThirdClassId { get; set; }
- public string FirstClassName { get; set; }
- public string SecondClassName { get; set; }
- public string ThirdClassName { get; set; }
- public string DeviceType { get; set; }
- public string ParentFacilityCode { get; set; }
- public string ParentFacilityName { get; set; }
- public string Name { get; set; }
- public string Nickname { get; set; }
- public string Manufacturer { get; set; }
- public string ManufactureModel { get; set; }
- public Nullable<int> BuildingId { get; set; }
- public Nullable<int> FloorId { get; set; }
- public Nullable<int> ZoneId { get; set; }
- public string BuildingName { get; set; }
- public string FloorName { get; set; }
- public string ZoneName { get; set; }
- public string MainContactorUserId { get; set; }
- public string SubContactorUserId { get; set; }
- public string MainContactorUserName { get; set; }
- public string SubContactorUserName { get; set; }
- public Nullable<bool> IsUse { get; set; }
- public Nullable<int> SortOrderNo { get; set; }
- }
- }
|