public void ChangePassword(ChangePasswordModelDTO changePasswordData) { if (changePasswordData.Password.Length < 6) { throw new Exception("Лозинката мора да содржи најмалку 6 карактери"); } if (changePasswordData.Password != changePasswordData.ConfirmPassword) { throw new Exception("Лозинките не се совпаѓаат"); } if ((!string.IsNullOrEmpty(changePasswordData.Password) && changePasswordData.ConfirmPassword == null) || (changePasswordData.Password == null && !string.IsNullOrEmpty(changePasswordData.ConfirmPassword))) { throw new Exception("За промена на лозинка потребно е да се внесат: Лозинка и Потврда за лозинка"); } var userDb = _authRepository.GetUsers().FirstOrDefault(x => x.UserName == changePasswordData.Username); if (userDb == null) { throw new Exception("Не постои таков корисник"); } var userManager = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(new InteropContext())); var hashPassword = userManager.PasswordHasher.HashPassword(changePasswordData.Password); userDb.PasswordHash = hashPassword; try { _authRepository.ChangePassword(userDb); } catch (Exception exception) { throw exception; } }
public void ChangePassword(ChangePasswordModelDTO changePasswordData) { char[] specialChars = "!@#$%^&*()".ToCharArray(); var validationErrors = new List <string>(); if (changePasswordData.Password.Length < 6) { validationErrors.Add("Лозинката мора да содржи најмалку 6 карактери"); } if (!changePasswordData.Password.Any(char.IsLetter)) { validationErrors.Add("Лозинката мора да содржи барем една буква"); } if (!changePasswordData.Password.Any(char.IsUpper)) { validationErrors.Add("Лозинката мора да содржи барем една голема буква"); } if (!changePasswordData.Password.Any(char.IsLower)) { validationErrors.Add("Лозинката мора да содржи барем една мала буква"); } if (!changePasswordData.Password.Any(char.IsDigit)) { validationErrors.Add("Лозинката мора да содржи барем еден број"); } if (changePasswordData.Password.IndexOfAny(specialChars) == -1) { validationErrors.Add("Лозинката мора да содржи барем еден специјален карактер !@#$%^&*()"); } if (changePasswordData.Password != changePasswordData.ConfirmPassword) { validationErrors.Add("Лозинките не се совпаѓаат"); } if ((!string.IsNullOrEmpty(changePasswordData.Password) && changePasswordData.ConfirmPassword == null) || (changePasswordData.Password == null && !string.IsNullOrEmpty(changePasswordData.ConfirmPassword))) { validationErrors.Add("За промена на лозинка потребно е да се внесат: Лозинка и Потврда за лозинка"); } if (validationErrors.Count > 0) { string errorMessage = string.Empty; foreach (var validationError in validationErrors) { errorMessage += validationError + "." + Environment.NewLine; } if (!string.IsNullOrEmpty(errorMessage)) { throw new Exception(errorMessage); } } var userDb = _authRepository.GetUsers().FirstOrDefault(x => x.UserName == changePasswordData.Username); if (userDb == null) { throw new Exception("Не постои таков корисник"); } var userManager = new UserManager <ApplicationUser>(new UserStore <ApplicationUser>(new InteropContext())); var hashPassword = userManager.PasswordHasher.HashPassword(changePasswordData.Password); userDb.PasswordHash = hashPassword; try { _authRepository.ChangePassword(userDb); } catch (Exception exception) { throw exception; } }