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 FacilityContactMethodData : BaseData, Sleis.Data.IFacilityContactMethodData { public List GetFacilityContactMethods(int contactId) { return (from d in GetSession().Query() where d.UserId == contactId orderby d.Index ascending select d).ToList(); } public void SaveFacilityContactMethods(ISession session, FacilityContact contact) { session.CreateSQLQuery("DELETE FROM P_CNTCT_MTHD WHERE FAC_CNTCT_ID=:userId") .SetInt32("userId", contact.Id) .ExecuteUpdate(); foreach (PublicFacilityContactMethod obj in contact.Contacts) { obj.Id = 0; //clear so always saves as new obj.UserId = contact.Id; if(!String.IsNullOrEmpty(obj.Value)) { session.Save(obj); } } } public int DeleteContactMethodsByFacility(int facilityId, ISession session) { return session.CreateSQLQuery(@"DELETE FROM P_CNTCT_MTHD WHERE FAC_CNTCT_ID IN (SELECT fc.FAC_CNTCT_ID FROM P_FAC_CNTCT fc, P_CNTCT_MTHD cm WHERE fc.FAC_CNTCT_ID = cm.FAC_CNTCT_ID AND fc.FAC_SITE_ID=:facilityId)") .SetInt32("facilityId", facilityId) .ExecuteUpdate(); } } }