public async Task <ActionResult <object> > NovaSenha([FromQuery] QpNovaSenha parametros) { if (parametros.Documento == null || parametros.DataNascimento == null || parametros.Senha == null) { return(BadRequest()); } try { return(Ok(await _service.NovaSenha(parametros))); } catch (Exception exception) { return(BadRequest(exception)); } }
public async Task <object> NovaSenha(QpNovaSenha parametros) { TblDocumentos documento = await _documentosService.GetByDocumento(parametros.Documento); if (documento != null) { TblPessoas pessoa = await _pessoasService.GetById(documento.NIdPessoa); if (pessoa.DNascimento == parametros.DataNascimento) { var plainTextBytes = Encoding.UTF8.GetBytes(parametros.Senha); string encodedText = Convert.ToBase64String(plainTextBytes); string senhaCriptografada = encodedText; TblSenhas senha = new TblSenhas { NIdPessoa = pessoa.NIdPessoa, SSenha = senhaCriptografada }; try { bool senhaCriada = (await _senhasService.Create(senha) != null); if (senhaCriada) { return(_tokenService.CreateToken(pessoa.NIdPessoa)); } else { throw new ArgumentException("Falha ao criar senha.", "mensagem"); } } catch (Exception exception) { throw new ArgumentException(exception.Message, "mensagem"); } } else { throw new ArgumentException("Data de nascimento inválida.", "mensagem"); } } else { throw new ArgumentException("Documento não localizado.", "mensagem"); } }