public PasswordChangeResponse ChangePassword(int UserID, string oldPassword, string newPassword) { PasswordChangeResponse response = new PasswordChangeResponse(); User user = _userRepository.Get(t => t.ID == UserID && t.Password == Cryptor.sha512encrypt(oldPassword)).FirstOrDefault(); if (user == null) { response.SetStatus(Constants.ResponseCode.INVALID_USERNAME_OR_PASSWORD); return(response); } try { user.Password = Cryptor.sha512encrypt(newPassword); _userRepository.Update(user); _unitOfWork.SaveChanges(); response.SetStatus(Constants.ResponseCode.SUCCESS); return(response); } catch (Exception) { response.SetStatus(Constants.ResponseCode.SYSTEM_ERROR); return(response); } }
public PasswordChangeResponse CheckPasswordChangeCode(string Email, string Code) { PasswordChangeResponse response = new PasswordChangeResponse(); if (Email == null || Email == "" || Code == null || Code == "") { response.SetStatus(Constants.ResponseCode.FAILED); return(response); } User user = _userRepository.Get(t => t.Email == Email).FirstOrDefault(); if (user == null) { response.SetStatus(Constants.ResponseCode.FAILED); return(response); } if (user.PasswordChanges.LastOrDefault().ChangeCode != Code) { response.SetStatus(Constants.ResponseCode.FAILED); return(response); } if (user.PasswordChanges.FirstOrDefault(t => t.ChangeCode == Code).IsExpired()) { response.SetStatus(Constants.ResponseCode.EXPIRED_CODE); return(response); } response.Email = user.Email; response.PassChangeCode = user.PasswordChanges.FirstOrDefault(t => t.ChangeCode == Code).ChangeCode; response.SetStatus(Constants.ResponseCode.SUCCESS); return(response); }
public PasswordChangeResponse ChangePassword(string Email, string Code, string newPassword) { PasswordChangeResponse response = CheckPasswordChangeCode(Email, Code); try { if (response.Code == (int)Constants.ResponseCode.SUCCESS) { User user = _userRepository.Get(t => t.Email == Email).FirstOrDefault(); user.Password = Cryptor.sha512encrypt(newPassword); _userRepository.Update(user); _unitOfWork.SaveChanges(); response.SetStatus(Constants.ResponseCode.SUCCESS); return(response); } else { response.SetStatus(Constants.ResponseCode.FAILED); return(response); } } catch (Exception) { response.SetStatus(Constants.ResponseCode.SYSTEM_ERROR); return(response); } }
public PasswordChangeResponse SendPasswordChangeCode(string Email) { PasswordChangeResponse response = new PasswordChangeResponse(); if (Email == null || Email == "") { response.SetStatus(Constants.ResponseCode.FAILED); return(response); } User user = _userRepository.Get(t => t.Email == Email).FirstOrDefault(); if (user == null) { response.SetStatus(Constants.ResponseCode.FAILED); return(response); } string PassChangeCode = RandomGenerator.Generate(6); MailRequest mailRequest = new MailRequest { ToMail = user.Email, ToName = user.FullName(), Subject = "B-Commerce Şifre Yenileme", Body = $"Şifre yenileme kodunuz: {PassChangeCode}", ProjectCode = "123456" }; HttpClient httpClient = new HttpClient(); httpClient.BaseAddress = new Uri(Constants.NOTIFICATION_API_BASE_URI); Task <HttpResponseMessage> httpResponse = httpClient.PostAsJsonAsync(Constants.NOTIFICATION_API_MAIL_URI, mailRequest); if (!httpResponse.Result.IsSuccessStatusCode) { response.SetStatus(Constants.ResponseCode.FAILED); return(response); } try { user.PasswordChanges.Add(new PasswordChange { ChangeCode = PassChangeCode, Email = user.Email }); _unitOfWork.SaveChanges(); response.Email = user.Email; response.SetStatus(Constants.ResponseCode.SUCCESS); return(response); } catch (Exception) { response.SetStatus(Constants.ResponseCode.SYSTEM_ERROR); return(response); } }