using System; using System.Collections.Generic; //using System.Linq; using System.Text; using Tanshu.Accounts.Contracts; using System.Data.SqlClient; using Tanshu.Data.DAO; using Tanshu.Accounts.Entities; using Tanshu.Accounts.SqlDAO; using NHibernate.Criterion; using Tanshu.Accounts.Entities.Auth; namespace Tanshu.Accounts.Repository { public static class UserBI { public static void Insert(User user) { using (var session = SessionManager.Session) { session.Save(user); } } public static void Update(User user) { using (var session = SessionManager.Session) { session.Update(user); } } public static void Delete(int userID) { using (var session = SessionManager.Session) { session.Delete(new User() { UserID = userID }); } } public static User GetUser(int userID) { using (var session = SessionManager.Session) { return session.Get(userID); } } public static User GetUserFromName(string name) { using (var session = SessionManager.Session) { return (User)session.CreateCriteria() .Add(Restrictions.Eq("Name", name)) .UniqueResult(); } } public static IList GetUsers() { using (var session = SessionManager.Session) { return session.CreateCriteria() .List(); } } public static IList GetFilteredUsers(Dictionary filter) { throw new NotImplementedException(); } public static bool ChangePassword(User userData, string newPassword) { using (var session = SessionManager.Session) { var dbUser = session.CreateCriteria() .Add(Restrictions.Eq("Name", userData.Name)) .Add(Restrictions.Eq("Password", userData.Password)) .UniqueResult(); if (dbUser == null) return false; dbUser.Password = newPassword; session.Update(dbUser); return true; } } public static bool Exists(string userName) { using (var session = SessionManager.Session) { var count = session.CreateCriteria() .Add(Restrictions.Eq("Name", userName)) .SetProjection(Projections.Count("UserID")).UniqueResult(); return (int)count > 0; } } public static bool ValidateUser(string name, string password) { using (var session = SessionManager.Session) { var count = session.CreateCriteria() .Add(Restrictions.Eq("Name", name)) .Add(Restrictions.Eq("Password", password)) .SetProjection(Projections.Count("UserID")).UniqueResult(); return (int)count > 0; } } } }