public override bool ExecuteSave(User user)
        {
            bool success = false;

            using (LogGroup logGroup = LogGroup.Start("Saving the new user.", NLog.LogLevel.Debug))
            {
                LogWriter.Debug("Auto navigate: " + AutoNavigate.ToString());

                // Cancel the base automatic navigation
                AutoNavigate = false;

                success = base.ExecuteSave(user);                 // Base function should take care of encrypting password etc

                LogWriter.Debug("Success: " + success.ToString());

                if (success)
                {
                    LogWriter.Debug("Is approved: " + user.IsApproved.ToString());

                    LogWriter.Debug("Signing the new user in.");

                    // Only sign the user in and send them to their account page if the user was automatically approvied (based on settings)
                    if (user.IsApproved)
                    {
                        Authentication.SetAuthenticatedUsername(user.Username);

                        NavigateAfterSave();
                    }
                }
                else
                {
                    LogWriter.Debug("Failed to save (username in use).");
                }
            }

            return(success);
        }
        public virtual bool ExecuteSave(User user)
        {
            bool success = false;

            using (LogGroup logGroup = LogGroup.Start("Saving the new user.", NLog.LogLevel.Debug))
            {
                // TODO: Clean up

                LogWriter.Debug("Auto navigate: " + AutoNavigate.ToString());

                user.Password = Crypter.EncryptPassword(user.Password);

                success = base.ExecuteSave(user);

                LogWriter.Debug("Success: " + success.ToString());

                if (!success)
                {
                    LogWriter.Debug("Failed to save (username in use).");
                }
            }

            return(success);
        }