Beispiel #1
0
        /// <summary>
        /// Cadastra um novo usuário
        /// </summary>
        /// <param name="novoUsuario">Objeto novoUsuario que será cadastrado</param>
        public void Cadastrar(UsuarioDomains novoUsuario)
        {
            // Declara a SqlConnection passando a string de conexão
            using (SqlConnection con = new SqlConnection(connection))
            {
                // Declara a query que será executada
                string queryInsert = "INSERT INTO Usuario(Email, Senha, Id_TipoUsuario) " +
                                     "VALUES (@Email, @Senha, @Id_TipoUsuario)";

                // Declara o comando passando a query e a conexão
                using (SqlCommand cmd = new SqlCommand(queryInsert, con))
                {
                    // Passa o valor do parâmetro
                    cmd.Parameters.AddWithValue("@Email", novoUsuario.Email);
                    cmd.Parameters.AddWithValue("@Senha", novoUsuario.Senha);
                    cmd.Parameters.AddWithValue("@Id_TipoUsuario", novoUsuario.Id_TipoUsuario);

                    // Abre a conexão com o banco de dados
                    con.Open();

                    // Executa o comando
                    cmd.ExecuteNonQuery();
                }
            }
        }
Beispiel #2
0
        public IActionResult Put(int id, UsuarioDomains usuarioAtualizado)
        {
            UsuarioDomains usuarioBuscado = _usuarioRepository.BuscarPorId(id);

            if (usuarioBuscado != null)
            {
                try
                {
                    _usuarioRepository.Atualizar(id, usuarioAtualizado);

                    return(NoContent());
                }
                catch (Exception erro)
                {
                    return(BadRequest(erro));
                }
            }
            return(NotFound
                   (
                       new
            {
                mensagem = "Usuário não encontrado",
                erro = true
            }
                   ));
        }
Beispiel #3
0
        //private string connection = "Data Source = DEV21\\SQLEXPRESS; initial catalog= Inlock_Games_Manha; user Id=sa; pwd=sa@132";


        public void Atualizar(int id, UsuarioDomains UsuarioAtualizado)
        {
            // Declara a conexão passando a string de conexão
            using (SqlConnection con = new SqlConnection(connection))
            {
                // Declara a query que será executada
                string queryUpdate = "UPDATE Usuario " +
                                     "SET Email = @Email, Senha = @Senha, Id_TipoUsuario = @Id_TipoUsuario " +
                                     "WHERE Id_TipoUsuario = @ID";

                // Declara o SqlCommand passando o comando a ser executado e a conexão
                using (SqlCommand cmd = new SqlCommand(queryUpdate, con))
                {
                    // Passa os valores dos parâmetros
                    cmd.Parameters.AddWithValue("@ID", id);
                    cmd.Parameters.AddWithValue("@Email", UsuarioAtualizado.Email);
                    cmd.Parameters.AddWithValue("@Senha", UsuarioAtualizado.Senha);
                    cmd.Parameters.AddWithValue("@Id_TipoUsuario", UsuarioAtualizado.Id_TipoUsuario);

                    // Abre a conexão com o banco de dados
                    con.Open();

                    // Executa o comando
                    cmd.ExecuteNonQuery();
                }
            }
        }
Beispiel #4
0
        public IActionResult GetById(int id)
        {
            UsuarioDomains usuarioBuscado = _usuarioRepository.BuscarPorId(id);

            if (usuarioBuscado != null)
            {
                return(Ok(usuarioBuscado));
            }

            return(NotFound("Nenhum usuário encontrado para o identificador informado"));
        }
Beispiel #5
0
        /// <summary>
        /// Busca um usuário através do ID
        /// </summary>
        /// <param name="id">ID do usuário que será buscado</param>
        /// <returns>Retorna um usuário buscado</returns>
        public UsuarioDomains BuscarPorId(int id)
        {
            // Declara a conexão passando a string de conexão
            using (SqlConnection con = new SqlConnection(connection))
            {
                // Declara a query que será executada
                string querySelectById = "SELECT U.Id_Usuario, U.Email, U.Id_TipoUsuario, TU.TituloTipoUsuario FROM Usuario U INNER JOIN TipoUsuario TU ON U.Id_TipoUsuario = TU.Id_TipoUsuario WHERE Id_Usuario = @ID";

                // Abre a conexão com o banco de dados
                con.Open();

                // Declara o SqlDataReader para receber os dados do banco de dados
                SqlDataReader rdr;

                // Declara o SqlCommand passando o comando a ser executado e a conexão
                using (SqlCommand cmd = new SqlCommand(querySelectById, con))
                {
                    // Passa o valor do parâmetro
                    cmd.Parameters.AddWithValue("@ID", id);

                    // Executa a query e armazena os dados no rdr
                    rdr = cmd.ExecuteReader();

                    // Caso o resultado da query possua registro
                    if (rdr.Read())
                    {
                        // Instancia um objeto usuario
                        UsuarioDomains usuario = new UsuarioDomains
                        {
                            // Atribui às propriedades os valores das colunas da tabela do banco
                            Id_Usuario = Convert.ToInt32(rdr["Id_Usuario"])
                            ,
                            Email = rdr["Email"].ToString()
                            ,
                            Id_TipoUsuario = Convert.ToInt32(rdr["Id_TipoUsuario"])
                            ,
                            TipoUsuario = new TipoUsuarioDomains
                            {
                                Id_TipoUsuario = Convert.ToInt32(rdr["Id_TipoUsuario"])
                                ,
                                TituloTipoUsuario = rdr["TituloTipoUsuario"].ToString()
                            }
                        };

                        // Retorna o usuario buscado
                        return(usuario);
                    }

                    // Caso o resultado da query não possua registros, retorna null
                    return(null);
                }
            }
        }
Beispiel #6
0
        /// <summary>
        /// Lista todos os usuários
        /// </summary>
        /// <returns>Retorna uma lista de usuários</returns>
        public List <UsuarioDomains> Listar()
        {
            // Cria uma lista usuários onde serão armazenados os dados
            List <UsuarioDomains> usuarios = new List <UsuarioDomains>();

            // Declara a SqlConnection passando a string de conexão
            using (SqlConnection con = new SqlConnection(connection))
            {
                // Declara a instrução a ser executada
                string querySelectAll = "SELECT U.Id_Usuario, U.Email, U.Id_TipoUsuario, TU.TituloTipoUsuario FROM Usuario U INNER JOIN TipoUsuario TU ON U.Id_TipoUsuario = TU.Id_TipoUsuario";

                // Abre a conexão com o banco de dados
                con.Open();

                // Declara o SqlDataReader para receber os dados do banco de dados
                SqlDataReader rdr;

                // Declara o SqlCommand passando o comando a ser executado e a conexão
                using (SqlCommand cmd = new SqlCommand(querySelectAll, con))
                {
                    // Executa a query e armazena os dados no rdr
                    rdr = cmd.ExecuteReader();

                    // Enquanto houver registros para serem lidos no rdr, o laço se repete
                    while (rdr.Read())
                    {
                        // Instancia um objeto usuario
                        UsuarioDomains usuario = new UsuarioDomains
                        {
                            // Atribui às propriedades os valores das colunas da tabela do banco
                            Id_Usuario = Convert.ToInt32(rdr["Id_Usuario"])
                            ,
                            Email = rdr["Email"].ToString()
                            ,
                            Id_TipoUsuario = Convert.ToInt32(rdr["Id_TipoUsuario"]),
                            TipoUsuario    = new TipoUsuarioDomains
                            {
                                Id_TipoUsuario = Convert.ToInt32(rdr["Id_TipoUsuario"])
                                ,
                                TituloTipoUsuario = rdr["TituloTipoUsuario"].ToString()
                            }
                        };

                        // Adiciona o usuario criado à lista usuarios
                        usuarios.Add(usuario);
                    }
                }
            }

            // Retorna a lista de usuários
            return(usuarios);
        }
Beispiel #7
0
        public IActionResult Delete(int id)
        {
            UsuarioDomains usuarioBuscado = _usuarioRepository.BuscarPorId(id);

            if (usuarioBuscado != null)
            {
                _usuarioRepository.Deletar(id);

                return(Ok($"O usuário {id} foi deletado com sucesso!"));
            }

            return(NotFound("Nenhum usuário encontrado para o identificador informado"));
        }
Beispiel #8
0
        /// <summary>
        /// Valida o usuário
        /// </summary>
        /// <param name="email">E-mail do usuário</param>
        /// <param name="senha">Senha do usuário</param>
        /// <returns>Retorna um usuário validado</returns>
        public UsuarioDomains BuscarPorEmailSenha(string email, string senha)
        {
            // Define a conexão passando a string
            using (SqlConnection con = new SqlConnection(connection))
            {
                // Define a query a ser executada no banco
                string querySelect = "SELECT U.Id_Usuario, U.Email, U.Id_TipoUsuario, TU.TituloTipoUsuario FROM Usuario U INNER JOIN TipoUsuario TU ON U.Id_TipoUsuario = TU.Id_TipoUsuario WHERE Email = @Email AND Senha = @Senha";

                // Define o comando passando a query e a conexão
                using (SqlCommand cmd = new SqlCommand(querySelect, con))
                {
                    // Define o valor dos parâmetros
                    cmd.Parameters.AddWithValue("@Email", email);
                    cmd.Parameters.AddWithValue("@Senha", senha);

                    // Abre a conexão com o banco
                    con.Open();

                    // Executa o comando e armazena os dados no objeto rdr
                    SqlDataReader rdr = cmd.ExecuteReader();

                    // Caso o resultado da query possua registro
                    if (rdr.Read())
                    {
                        // Instancia um objeto usuario
                        UsuarioDomains usuario = new UsuarioDomains
                        {
                            // Atribui às propriedades os valores das colunas da tabela do banco
                            Id_Usuario = Convert.ToInt32(rdr["Id_Usuario"])
                            ,
                            Email = rdr["Email"].ToString()
                            ,
                            Id_TipoUsuario = Convert.ToInt32(rdr["Id_TipoUsuario"])
                            ,
                            TipoUsuario = new TipoUsuarioDomains
                            {
                                Id_TipoUsuario = Convert.ToInt32(rdr["Id_TipoUsuario"])
                                ,
                                TituloTipoUsuario = rdr["TituloTipoUsuario"].ToString()
                            }
                        };

                        // Retorna o usuario buscado
                        return(usuario);
                    }
                }

                // Caso não encontre um email e senha correspondente, retorna null
                return(null);
            }
        }
Beispiel #9
0
        public IActionResult Post(LoginViewModel login)
        {
            // Busca o usuário pelo e-mail e senha
            UsuarioDomains usuarioBuscado = _usuarioRepository.BuscarPorEmailSenha(login.Email, login.Senha);

            // Caso não encontre nenhum usuário com o e-mail e senha informados
            if (usuarioBuscado == null)
            {
                // Retorna NotFound com uma mensagem de erro
                return(NotFound("E-mail ou senha inválidos"));
            }


            var claims = new[]
            {
                new Claim(JwtRegisteredClaimNames.Email, usuarioBuscado.Email),
                new Claim(JwtRegisteredClaimNames.Jti, usuarioBuscado.Id_Usuario.ToString()),
                new Claim(ClaimTypes.Role, usuarioBuscado.Id_TipoUsuario.ToString())
            };

            // Define a chave de acesso ao token
            var key = new SymmetricSecurityKey(System.Text.Encoding.UTF8.GetBytes("InLock-autenticacao"));

            // Define as credenciais do token - Header
            var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);

            // Gera o token
            var token = new JwtSecurityToken(            // Importante lembrar
                issuer: "Senai.inlock.WebApi",           // emissor do token
                audience: "Senai.inlock.WebApi",         // destinatário do token
                claims: claims,                          // dados definidos acima
                expires: DateTime.Now.AddMinutes(30),    // tempo de expiração
                signingCredentials: creds                // credenciais do token
                );


            return(Ok(new
            {
                token = new JwtSecurityTokenHandler().WriteToken(token)
            }));
        }
Beispiel #10
0
        public IActionResult Post(UsuarioDomains novoUsuario)
        {
            _usuarioRepository.Cadastrar(novoUsuario);

            return(Ok(novoUsuario));
        }