using System; using System.Collections.Generic; using System.Linq; using System.Web; using Sleis.Models; using NHibernate.Linq; using NHibernate; namespace Sleis.Data { public class AgencyFacilityContactMethodData : BaseData, IFacilityContactMethodData { public List GetFacilityContactMethods(int contactId) { using (ISession session = GetSession()) { return (from d in session.Query() where d.UserId == contactId orderby d.Index ascending select d).ToList(); } } public void SaveFacilityContactMethods(ISession session, FacilityContact contact) { session.CreateSQLQuery("DELETE FROM M_CNTCT_MTHD WHERE FAC_CNTCT_ID=:userId") .SetInt32("userId", contact.Id) .ExecuteUpdate(); foreach (AgencyFacilityContactMethod obj in contact.Contacts) { obj.Id = 0; //clear so always saves as new obj.UserId = contact.Id; Log.Info(String.Format("Saving object: {0}", obj.GetType().Name)); if (!String.IsNullOrEmpty(obj.Value)) { session.Save(obj); } } } public int DeleteContactMethodsByFacility(int facilityId, ISession session) { return session.CreateSQLQuery(@" DELETE FROM M_CNTCT_MTHD WHERE FAC_CNTCT_ID IN (SELECT fc.FAC_CNTCT_ID FROM M_FAC_CNTCT fc, M_CNTCT_MTHD cm WHERE fc.FAC_CNTCT_ID = cm.FAC_CNTCT_ID AND fc.FAC_SITE_ID=:facilityId)") .SetInt32("facilityId", facilityId) .ExecuteUpdate(); } } }