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; using Sleis.Utility; namespace Sleis.Data { public class UserData : BaseData, Sleis.Data.IUserData { public IList GetFacilityUsers(int facId) { using (ISession session = GetSession()) { var tmp = (from d in session.Query() join r in session.Query() on d.Id equals r.UserId where r.FacilityId == facId && d.Status!=SleisUserStatusType.Deleted select d); return tmp.Distinct().ToList(); } } public int GetAuthorizedUsers(int userId, int facilityId) { using (ISession session = GetSession()) { var tmp = (from u in session.Query() join r in session.Query() on u.Id equals r.UserId where r.FacilityId.Value == facilityId && r.UserId != userId && u.Status!=SleisUserStatusType.Deleted select u.Id).ToList().Distinct(); return tmp.Count(); } } public int UserSecurityQuestionAnswered(int userId) { using (ISession session = GetSession()) { var tmp = (from d in session.Query() where d.UserId == userId select d.UserId); return tmp.Count(); } } public bool IsElectronicSigVerified(int userId) { using (ISession session = GetSession()) { return (from d in session.Query() where d.Id == userId select d.IsElectronicSigVerified).FirstOrDefault(); } } public bool EmailExists(string email) { ArgumentValidationUtility.ThrowOnEmpty(email, "email"); using (ISession session = GetSession()) { return (from d in session.Query() where d.Email.ToLowerInvariant().Equals(email.ToLowerInvariant()) select d.Email).ToList().Count > 0; } } public UserModel GetByEmail(string email) { ArgumentValidationUtility.ThrowOnEmpty(email, "email"); using (ISession session = GetSession()) { return (from d in session.Query() where d.Email.ToLowerInvariant().Equals(email.ToLowerInvariant()) select d).FirstOrDefault(); } } } }