using System; using System.Collections.Generic; using System.Linq; using System.Web; using Sleis.Models; using NHibernate; using NHibernate.Linq; namespace Sleis.Data { public class AgencyFacilityContactData : BaseData, IFacilityContactData { public void SaveFacilityContacts(ISession session, int facilityId, params FacilityContact[] contacts) { session.CreateSQLQuery("DELETE FROM M_FAC_CNTCT WHERE FAC_SITE_ID=:facilityId") .SetInt32("facilityId", facilityId) .ExecuteUpdate(); if (contacts != null) { foreach (FacilityContact obj in contacts) { if (obj != null && obj.Person !=null && !String.IsNullOrEmpty(obj.Person.Name)) { obj.Person.Id = 0;//clear so always saves as new. obj.Person.FacilityId = facilityId; //TODO: Not sure if necessary //gencyFacilityContact contact = obj.Person as AgencyFacilityContact; //session.SaveOrUpdate("AgencyFacilityContact", contact); string type = obj.Person.GetType().Name; session.SaveOrUpdate(obj.Person); //Should always be adding as new since all previous records are deleted above. } } } } public FacilityContactModel GetFacilityContact(int facilityId, FacilityContactType type) { using (ISession session = GetSession()) { return (from d in session.Query() where d.FacilityId == facilityId && d.Type == type orderby d.Index ascending select d).FirstOrDefault(); } } public List GetAllFacilityContacts(int facilityId) where T : FacilityContactModel { using (ISession session = GetSession()) { return session.Query().Where(c => c.FacilityId == facilityId).OrderBy(c => c.Index).ToList(); } } } }