Example #1
0
        /// <summary>
        /// Gets the current user.
        /// </summary>
        /// <param name="userIsOnline">if set to <c>true</c> [user is online].</param>
        /// <returns></returns>
        public static User GetCurrentUser(bool userIsOnline)
        {
            string userName = User.GetCurrentUserName();

            if (userName != string.Empty)
            {
                if (userName.StartsWith("rckipid="))
                {
                    Rock.CRM.PersonService personService      = new CRM.PersonService();
                    Rock.CRM.Person        impersonatedPerson = personService.GetByEncryptedKey(userName.Substring(8));
                    if (impersonatedPerson != null)
                    {
                        return(impersonatedPerson.ImpersonatedUser);
                    }
                }
                else
                {
                    UserService userService = new UserService();
                    User        user        = userService.GetByUserName(userName);

                    if (user != null && userIsOnline)
                    {
                        user.LastActivityDate = DateTime.Now;
                        userService.Save(user, null);
                    }

                    return(user);
                }
            }

            return(null);
        }