public User LoginUser(string pinValue) { Debug.Assert(_applicationState.CurrentLoggedInUser == User.Nobody); var user = CheckPinCodeStatus(pinValue) == LoginStatus.CanLogin ? GetUserByPinCode(pinValue) : User.Nobody; _applicationStateSetter.SetCurrentLoggedInUser(user); Reset(); if (user != User.Nobody) { user.PublishEvent(EventTopicNames.UserLoggedIn); _applicationState.NotifyEvent(RuleEventNames.UserLoggedIn, new { User = user, UserName = user.Name, RoleName = user.UserRole.Name }); } return(user); }
/// <summary>Logs in a the given Horeb user and updates the last-activity date/time stamp if sucessful.</summary> /// <param name="username">The user name to log-in.</param> /// <param name="logInStatus">The status of the log-in action.</param> /// <returns> True if the user was logged on successfully. False otherwise.</returns> /// <exception cref="T:System.ArgumentNullException"> public bool Login(string username, out LoginStatus logInStatus) { SecureUtility.CheckParameter(ref username, true, false, true, 256, nameof(username)); if (!_userDao.DoesUserExist(username)) { logInStatus = LoginStatus.UserDoesNotExist; return(false); } HorebUser user = _userDao.Find(username); _userDao.UpdateUserActivity(user.Id); _applicationStateSetter.SetCurrentLoggedInUser(username); logInStatus = LoginStatus.LoggedIn; return(true); }