Пример #1
0
        public ServiceMessage ChangePassword(DTOModels.ChangePasswordDTO changePasswordDTO)
        {
            string message = "";
            bool   success = true;

            if (changePasswordDTO != null)
            {
                string oldPassword           = changePasswordDTO.OldPassword;
                string oldHashedPassword     = encryptor.Encrypt(oldPassword);
                string currentHashedPassword = session.CurrentUserHashedPassword;

                string newPassword = changePasswordDTO.NewPassword;

                if (oldHashedPassword == currentHashedPassword)
                {
                    if (success = registerValidator.ValidatePassword(newPassword, ref message))
                    {
                        string newHashedPassword = encryptor.Encrypt(newPassword);
                        try
                        {
                            OnPasswordChange(changePasswordDTO.Login, newHashedPassword);

                            unitOfWork.Accounts.ChangePassword(changePasswordDTO.Login, newHashedPassword);
                            unitOfWork.Commit();

                            message = "Password changed";
                        }
                        catch (Exception ex)
                        {
                            message = ExceptionMessageBuilder.BuildMessage(ex);
                            success = false;
                        }
                    }
                }
                else
                {
                    message = "Old password is incorrect";
                    success = false;
                }
            }
            else
            {
                message = "Bad argument. DTO cannot be null";
                success = false;
            }

            return(new ServiceMessage(message, success));
        }