Exemplo n.º 1
0
        private void Register()
        {
            try
            {
                using (UnitOfWork unit = new UnitOfWork())
                {
                    IEnumerable <User> result = unit.UserRepository.Get(x => x.UserLogin == UserLogin);
                    if (result.Count() != 0)
                    {
                        Message = "Пользователь с таким логином уже существует!";
                        return;
                    }
                    else
                    {
                        User regUser = new User();
                        regUser.Salt         = PasswordHash.GenerateSaltForPassword().ToString();
                        regUser.UserPassword = PasswordHash.ComputePasswordHash(UserPassword, int.Parse(regUser.Salt));
                        regUser.UserLogin    = UserLogin;

                        unit.UserRepository.Create(regUser);
                        unit.Save();

                        User foundUser = unit.UserRepository.Get(x => x.UserLogin == regUser.UserLogin).First();

                        usersDatum.IdData   = foundUser.Id;
                        usersDatum.FullName = UserSurname + " " + UserName + " " + UserLastname;

                        unit.UserDatumRepository.Create(usersDatum);
                        unit.Save();

                        usersParam.IdParams = foundUser.Id;

                        unit.UserParamRepository.Create(usersParam);
                        unit.Save();

                        Message = "Регистрация прошла успешно! Введите логин и пароль";
                        UpdateViewCommand.Execute("LogInPage");
                    }
                }
            }
            catch (Exception exception)
            {
                MessageBox.Show("Сообщение ошибки: " + exception.Message, "Произошла ошибка");
            }
        }
 private void changePassword()
 {
     try
     {
         using (UnitOfWork unit = new UnitOfWork())
         {
             IEnumerable <User> result = unit.UserRepository.Get(x => x.Id == DeserializedUser.deserializedUser.Id);
             User user = result?.First();
             if (NewPassword == "" || OldPassword == "")
             {
                 TextMessage = "Пустые поля!";
             }
             else if (PasswordHash.ComputePasswordHash(OldPassword, int.Parse(user.Salt)).SequenceEqual(user.UserPassword) && Regex.IsMatch(NewPassword, "^([a-z]|[A-Z]|[0-9]){8,20}$"))
             {
                 user.Salt         = PasswordHash.GenerateSaltForPassword().ToString();
                 user.UserPassword = PasswordHash.ComputePasswordHash(NewPassword, int.Parse(user.Salt));
                 unit.UserRepository.Update(user);
                 unit.Save();
                 TextMessage = "Смена пароля прошла успешно!";
                 OldPassword = "";
                 NewPassword = "";
             }
             else if (!PasswordHash.ComputePasswordHash(OldPassword, int.Parse(user.Salt)).SequenceEqual(user.UserPassword))
             {
                 TextMessage = "Неверный старый пароль!";
             }
             else if (!Regex.IsMatch(NewPassword, "^([a-z]|[A-Z]|[0-9]){8,20}$"))
             {
                 TextMessage = "Неверный новый пароль! Можно вводить латинские символы и цифры. Длина пароля: 8-20 символов.";
             }
             else
             {
                 TextMessage = "Пароль не может быть изменён на самого себя!";
             }
         }
     }
     catch (Exception exception)
     {
         MessageBox.Show("Сообщение ошибки: " + exception.Message, "Произошла ошибка");
     }
 }