| 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; }    }}
 |