public UserViewModel loginToServer(LoginQuery query) { // Attempts to login to remote server UserViewModel vm = new UserViewModel(); repository.ExecuteTransaction(session => { var res = session.Query <TFI.Entities.dbo.Userlicenses>().Where (x => x.User.Username == query.Username || x.User.Email.ToLower() == query.Username.ToLower()).OrderByDescending(x => x.dtExpirationDate).FirstOrDefault(); if (res == null || !EncryptionHelper.ValidateHashData(query.Password, res.User.Password, res.User.Salt, EncryptionHelper.encriptionType.MD5)) { vm.Messages.Add(new Cherries.Models.App.Message() { LogLevel = Cherries.Models.App.LogLevel.Error, Text = Messages.UserOrPasswordInvalid }); } //else if (res.dtExpirationDate < DateTime.Today) //{ // vm.Messages.Add(new Cherries.Models.App.Message() // { // LogLevel = Cherries.Models.App.LogLevel.Error, // Text = Messages.LicenseExpired // }); //} else if (res.User.IsLoggedin) { vm.Messages.Add(new Cherries.Models.App.Message() { LogLevel = Cherries.Models.App.LogLevel.Error, Text = Messages.UserAlreayLoggedin }); } else { res.User.IsLoggedin = true; res.User.LoggedinIP = query.IP; session.Update(res.User); Entities.dbo.UsersLogin usersLogin = new Entities.dbo.UsersLogin { UserID = res.User.UserID, LoginDT = DateTime.Now, LogoutDT = null }; session.Save(usersLogin); session.Flush(); vm.User = AutoMapper.Mapper.Map <User>(res); } }); return(vm); }//loginToServer
public void Logoff(LogoffCommand command) { repository.ExecuteTransaction(session => { foreach (var userID in command.Users) { var user = session.Get <Entities.dbo.Users>(userID); user.IsLoggedin = false; user.LoggedinIP = ""; session.Update(user); Entities.dbo.UsersLogin usersLogin = session.Query <Entities.dbo.UsersLogin>().Where(x => (x.UserID == userID && x.LogoutDT == null)).FirstOrDefault(); if (usersLogin != null) { usersLogin.LogoutDT = DateTime.Now; session.Update(usersLogin); } } }); }