public async Task <ResponseDTO> Registration(RegistartionUserDTO registartionDTO) { var existingCode = await context.Codes.FirstOrDefaultAsync(code => code.PhoneNumber == registartionDTO.Phone && code.Code == registartionDTO.VerificationCode); if (existingCode == null) { return(new ResponseDTO() { Message = "Данный верификационный код не найден либо не верен", Status = false }); } else { context.Codes.Remove(existingCode); await context.SaveChangesAsync(); } string password = BCrypt.Net.BCrypt.HashPassword(registartionDTO.Password); User user = new User() { Phone = registartionDTO.Phone, Password = password, Role = Role.User }; context.Users.Add(user); await context.SaveChangesAsync(); return(new ResponseDTO() { Message = "Вы успешно зарегистрировались", Status = true }); }
public async Task <IActionResult> Registration([FromBody] RegistartionUserDTO registartionDTO) { try { if (!ModelState.IsValid) { return(BadRequest()); } ResponseDTO answer = await userAuthService.Registration(registartionDTO); if (answer.Status == false) { return(StatusCode(400, answer)); } AuthUserDTO authDTO = new AuthUserDTO() { Phone = registartionDTO.Phone, Password = registartionDTO.Password }; User user = await userAuthService.Authenticate(authDTO); if (string.IsNullOrEmpty(user.Token)) { return(Unauthorized(new { status = false })); } return(Ok(new { user, answer })); } catch (Exception ex) { logger.LogError(ex.Message); return(StatusCode(500, new ResponseDTO() { Message = "На данный момент на стороне сервера ошибка, пожалуйста повторите попытку позже", Status = false })); } }
public async Task <ResponseDTO> PasswordChange(RegistartionUserDTO registartionDTO) { var existingCode = await context.Codes.FirstOrDefaultAsync(code => code.PhoneNumber == registartionDTO.Phone && code.Code == registartionDTO.VerificationCode); if (existingCode == null) { return(new ResponseDTO() { Message = "Данный верификационный код не найден либо не верен", Status = false }); } else { context.Codes.Remove(existingCode); await context.SaveChangesAsync(); } User foundedUser = await context.Users.FirstOrDefaultAsync(user => user.Phone == registartionDTO.Phone); if (foundedUser == null) { return(new ResponseDTO() { Message = "Данный пользователь не найден", Status = false }); } User newPasswordUser = foundedUser; newPasswordUser.Password = registartionDTO.Password; context.Entry(foundedUser).CurrentValues.SetValues(newPasswordUser); await context.SaveChangesAsync(); return(new ResponseDTO() { Message = "Пароль успешно изменён", Status = true }); }