using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using NHibernate; using NHibernate.Linq; using Sleis.Models; using Sleis.Infrastructure; namespace Sleis.Data { public class PublicControlDeviceData : BaseData, IControlDeviceData { public List GetControlDevicesByFacility(int facilityId) { using(ISession session= GetSession()) { var list = from d in session.Query() where d.FacilityId == facilityId select d; return list.ToList(); } } public List GetControlDevicesByReport(int reportId) { using(ISession session = GetSession()) { return( from d in session.Query() join pf in session.Query() on d.FacilityId equals pf.Id join pr in session.Query() on pf.ReportId equals pr.Id where pr.ReportId == reportId select d).ToList(); } } /* public List GetControlDevicesByEmissionUnitId(int emissionUnitId) { using (ISession session = GetSession()) { return (from d in session.Query() where d.EmissionUnitId == emissionUnitId join e in session.Query() on d.Id equals e.DeviceApproachId join f in session.Query() on e.ControlDevice.DeviceId equals f.Id select f).Distinct().ToList(); } } */ public List GetControlDeviceIdentifiersByUnitProcessId(int unitProcessId) { using (ISession session = GetSession()) { return (from d in session.Query() where d.UnitProcessId == unitProcessId join e in session.Query() on d.Id equals e.ControlApproachId join f in session.Query() on e.ControlDeviceId equals f.Id select f.Identifier).Distinct().ToList(); } } public List GetControlDevicesByUnitProcess(int unitProcessId) { using (ISession session = GetSession()) { return (from ca in session.Query() join ucd in session.Query() on ca.Id equals ucd.ControlApproachId join cd in session.Query() on ucd.ControlDeviceId equals cd.Id where ca.UnitProcessId == unitProcessId select cd).Distinct().ToList(); } } public List GetControlDevicesByEmissionUnit(int emissionUnitId) { using (ISession session = GetSession()) { return (from ca in session.Query() join ucd in session.Query() on ca.Id equals ucd.ControlApproachId join cd in session.Query() on ucd.ControlDeviceId equals cd.Id where ca.EmissionUnitId == emissionUnitId select cd).Distinct().ToList(); } } /* public List GetControlDevicesByUnitProcessId(int unitProcessId) { using (ISession session = GetSession()) { return (from d in session.Query() where d.EntityId == unitProcessId join e in session.Query() on d.Id equals e.DeviceApproachId join f in session.Query() on e.ControlDevice.DeviceId equals f.Id select f).Distinct().ToList(); } } */ public bool CanDelete(int id) { throw new NotImplementedException(); } public bool IsIdentifierUnique(ControlDeviceModel controlDevice) { using (ISession session = GetSession()) { return (from cd in session.Query() where cd.Identifier == controlDevice.Identifier && cd.Id != controlDevice.Id && cd.FacilityId == controlDevice.FacilityId select cd).Count() == 0; } } } }