Esempio n. 1
0
        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
Esempio n. 2
0
        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);
                    }
                }
            });
        }