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 PublicReleasePointData : ReleasePointData, IReleasePointData { public List GetReleasePointsByFacility(int facilityId) { using (ISession session = GetSession()) { /*ISQLQuery query = session.CreateSQLQuery(@"SELECT REL_PT_ID, FAC_SITE_ID, E_REL_PT_TYPE_CD , E_REL_PT_STAT_CD, REL_PT_DESC, REL_PT_IDEN FROM P_REL_PT WHERE FAC_SITE_ID = :facilityId"); query.SetInt32("facilityId", facilityId); query.AddEntity(typeof(PublicReleasePoint)); return query.List().ToList(); */ return (from d in GetSession().Query() where d.FacilityId == facilityId select d).Distinct().ToList(); } } /// /// Will fetch Release Points based on AgencyReport Id. /// /// Agency Report Id /// public List GetReleasePointsByReport(int agencyReportId) { using (ISession session = GetSession()) { return (from rp in GetSession().Query() join f in GetSession().Query() on rp.FacilityId equals f.Id join pr in GetSession().Query() on f.ReportId equals pr.Id where pr.ReportId == agencyReportId select rp).Distinct().ToList(); } } public ReleasePoint GetReleasePoint(int id) { return GetSession().Query().SingleOrDefault(r => r.Id == id); } public List GetReleasePointsByUnitProcess(int unitProcessId) { using (ISession session = GetSession()) { return (from uprp in session.Query() join rp in session.Query() on uprp.ReleasePointId equals rp.Id where uprp.UnitProcessId == unitProcessId select rp).Distinct().ToList(); } } public List GetReleasePointsByEmissionUnit(int emissionUnitId) { using (ISession session = GetSession()) { return (from uprp in session.Query() join rp in session.Query() on uprp.ReleasePointId equals rp.Id join up in session.Query() on uprp.UnitProcessId equals up.Id where up.EmissionUnitId == emissionUnitId select rp).Distinct().ToList(); } } public bool CanDelete(int id) { throw new NotImplementedException(); } public bool IsIdentifierUnique(ReleasePoint releasePoint) { using (ISession session = GetSession()) { return (from rp in session.Query() where rp.Identifier == releasePoint.Identifier && rp.Id != releasePoint.Id && rp.FacilityId == releasePoint.FacilityId select rp).Count() == 0; } } } }