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, "Произошла ошибка"); } }