public IProcessUserResetPasswordResult Process(string token, string newPassword)
        {
            IUserResetPassword userResetPassword;

            if (string.IsNullOrWhiteSpace(token) || (userResetPassword = FindUserResetPassword.Find(token)) == null)
            {
                return(CreateResult(ProcessUserResetPasswordStatus.InvalidToken));
            }

            var user = FindUserByUsername.Find(userResetPassword.Username);

            if (user == null)
            {
                return(CreateResult(ProcessUserResetPasswordStatus.Failure));
            }

            var success = UpdateUserPassword.Update(user, newPassword);

            return(CreateResult(success ? ProcessUserResetPasswordStatus.Success : ProcessUserResetPasswordStatus.Failure));
        }