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 PublicEmissionUnitData : BaseData, IEmissionUnitData { /* public List GetEmissionUnits(int facilityId) { return (from d in GetSession().Query() where d.FacilityId == facilityId select d).ToList(); } */ public List GetEmissionUnitsByFacility(int facilityId) { using (ISession session = GetSession()) { return (from d in session.Query() where d.FacilityId == facilityId select d).ToList(); } } public List GetEmissionUnitsByReport(int reportId) { using (ISession session = GetSession()) { return (from d in session.Query() join g in session.Query() on d.FacilityId equals g.Id join pr in session.Query() on g.ReportId equals pr.Id where pr.ReportId == reportId select d).ToList(); } } public List GetEmissionUnitIdentifiers(int controlDeviceId, int reportId) { using(ISession session =GetSession ()) { return (from d in session.Query() join e in session.Query() on d.Id equals e.EmissionUnitId join f in session.Query() on e.Id equals f.ControlApproachId join g in session.Query() on d.FacilityId equals g.Id where f.ControlDeviceId == controlDeviceId select d.Identifier).Distinct().ToList(); } } public List GetEmissionUnitsByControlDevice(int controlDeviceId) { using (ISession session = GetSession()) { return (from d in session.Query() join e in session.Query() on d.Id equals e.EmissionUnitId join f in session.Query() on e.Id equals f.ControlApproachId join g in session.Query() on d.FacilityId equals g.Id where f.ControlDeviceId == controlDeviceId select d).Distinct().ToList(); } } public bool CanDelete(int id) { throw new NotImplementedException(); } public bool IsIdentifierUnique(EmissionUnit emissionUnit) { using (ISession session = GetSession()) { return (from eu in session.Query() where eu.Identifier == emissionUnit.Identifier && eu.Id != emissionUnit.Id && eu.FacilityId == emissionUnit.FacilityId select eu).Count() == 0; } } /* public EmissionUnit GetEmissionUnit(int emissionUnitId) { return (from d in GetSession().Query() where d.Id == emissionUnitId select d).FirstOrDefault().As(); } * */ } }