public async Task <BaseResponse> Inserir(RequestUsuario request) { try { _logger.LogInformation("Iniciando cadastro do usuário."); var valid = await ValidarRequest(new UsuarioValidator(), request); if (valid != null) { return(valid); } var entity = _mapper.Map <Usuario>(request); entity.Senha = HelpExtensions.Encrypt(request.Senha); entity.DataCadastro = DateTime.Now; entity.PrimeiroAcesso = true; var response = await ObterStatusCode( "Usuário cadastrado com sucesso.", StatusCodes.Status201Created, _mapper.Map <ResponseUsuario>(await _usuarioRepository.Inserir(entity))); _logger.LogInformation("Fim do usuário do livro."); return(response); } catch (Exception ex) { return(await ObterStatusCode("Erro ao usuário o livro", StatusCodes.Status400BadRequest, null, ex)); } }
public async Task <BaseResponse> Atualizar(RequestUsuario request) { try { _logger.LogInformation("Iniciando atualização do usuário."); var valid = await ValidarRequest(new UsuarioValidator(), request); if (valid != null) { return(valid); } if (await _usuarioRepository.UsuarioCadastrado(request.Id)) { var entity = await _usuarioRepository.ObterPorId(request.Id); var usuario = _mapper.Map <Usuario>(request); usuario.PrimeiroAcesso = false; usuario.DataCadastro = entity.DataCadastro; usuario.DataAlteracao = DateTime.Now; if (!string.IsNullOrEmpty(request.Senha)) { usuario.Senha = HelpExtensions.Encrypt(request.Senha); } var response = await ObterStatusCode( "Usuário atualizado com sucesso.", StatusCodes.Status200OK, _mapper.Map <ResponseUsuario>(await _usuarioRepository.Atualizar(usuario))); _logger.LogInformation("Fim da atualização do usuário."); return(response); } else { return(await ObterStatusCode("Usuário informado não localizado.", StatusCodes.Status400BadRequest)); } } catch (Exception ex) { return(await ObterStatusCode("Erro ao atualizar o usuário", StatusCodes.Status400BadRequest, null, ex)); } }
public async Task <BaseResponse> AutenticarUsuario(RequestLoginUsuario request) { try { _logger.LogInformation("Inicio autenticação do usuário"); var senhaEncrypt = HelpExtensions.Encrypt(request.Senha); var usuario = await _usuarioRepository.ObterUsuario(request.Email, senhaEncrypt); var tokenHandler = new JwtSecurityTokenHandler(); var key = Encoding.ASCII.GetBytes(_configuration.GetValue <string>("Secret")); var tokenDescriptor = new SecurityTokenDescriptor { Subject = new ClaimsIdentity(new Claim[] { new Claim(ClaimTypes.Name, usuario.Nome.ToString()), new Claim(ClaimTypes.Email, usuario.Email.ToString()) }), Expires = DateTime.UtcNow.AddHours(2), SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha256Signature) }; var token = tokenHandler.CreateToken(tokenDescriptor) as JwtSecurityToken; ResponseLoginUsuario response = new ResponseLoginUsuario(); response.IdUsuario = usuario.Id; response.Token = token.RawData; _logger.LogInformation("Fim da autenticação do usuário"); return(await ObterStatusCode("Autenticação realizada com sucesso.", StatusCodes.Status200OK, response)); } catch (Exception ex) { return(await ObterStatusCode("Erro ao autenticar o usuário", StatusCodes.Status400BadRequest, null, ex)); } }