Beispiel #1
0
        public void Add(Porteiro porteiro)
        {
            var transaction = _context.Database.BeginTransaction();

            try{
                porteiro.pessoa.Criacao = DateTime.Now;
                porteiro.pessoa.Digital = Util.Util.geraDigital();

                porteiro.usuario.Criacao    = DateTime.Now;
                porteiro.usuario.Tipo       = 1;
                porteiro.usuario.Desativado = 0;
                porteiro.usuario.Senha      = TrataHash.GeraMD5Hash(porteiro.usuario.Senha);

                if ((_context.Usuario.Where(x => x.Email == porteiro.usuario.Email).DefaultIfEmpty().First() == null) &&
                    (_context.Pessoa.Where(x => x.Cpf == porteiro.pessoa.Cpf).DefaultIfEmpty().First() == null))
                {
                    _context.Usuario.Add(porteiro.usuario);
                    _context.Pessoa.Add(porteiro.pessoa);
                    _context.Porteiro.Add(porteiro);
                    _context.SaveChanges();
                    transaction.Commit();
                }
                else
                {
                    transaction.Rollback();
                }
            }
            catch (Exception e) {
                Console.WriteLine("Erro");
                Console.WriteLine(e);
                transaction.Rollback();
                return;
            }
        }
Beispiel #2
0
        public void Add(Usuario usuario)
        {
            var transaction = _context.Database.BeginTransaction();

            try{
                usuario.Criacao    = DateTime.Now;
                usuario.Desativado = 0;
                usuario.Senha      = TrataHash.GeraMD5Hash(usuario.Senha);

                if ((_context.Usuario.Where(x => x.Email == usuario.Email).DefaultIfEmpty().First() == null))
                {
                    _context.Usuario.Add(usuario);
                    _context.SaveChanges();
                    transaction.Commit();
                }
                else
                {
                    transaction.Rollback();
                }
            }
            catch (Exception e) {
                Console.WriteLine("Erro");
                Console.WriteLine(e);
                transaction.Rollback();
                return;
            }
        }
        public ActionResult <RetornoView <Usuario> > Create([FromBody] Usuario usuario)
        {
            if (usuario.administrador == true)
            {
                try
                {
                    if (usuario.desativado == true)
                    {
                        usuario.data_desativacao = DateTime.Now;
                    }
                    usuario.senha           = TrataHash.GeraMD5Hash(usuario.senha);
                    usuario.log_atualizacao = DateTime.Now;
                    usuario.log_criacao     = DateTime.Now;
                    usuario.Validacoes();
                    _usuarioRepository.Add(usuario);
                }
                catch (Exception ex)
                {
                    var resultado = new RetornoView <Usuario>()
                    {
                        sucesso = false, erro = ex.Message
                    };
                    return(BadRequest(resultado));
                }
            }
            var result = new RetornoView <Usuario>()
            {
                data = usuario, sucesso = true
            };

            return(CreatedAtRoute("GetUsuario", new { id = usuario.id }, result));
        }
        public IActionResult RequestToken([FromBody] Usuario request)
        {
            var usuario = _context.usuario
                          .Where(e => e.email == request.email)
                          .Where(e => e.senha == request.senha)
                          .FirstOrDefault();

            if ((usuario != null) && (TrataHash.VerificaMD5Hash(request.senha, usuario.senha)))
            {
                var claims = new[] {
                    new Claim(ClaimTypes.Name, request.email)
                };


                //Recebe uma instância da classe SymmetricSecurityKey
                //Armazena a chave de criptografia usada na criação do token
                var key = new SymmetricSecurityKey(
                    Encoding.UTF8.GetBytes(_configuration["SecurityKey"]));

                //Recebe um objeto do tipo SigninCredentials contendo a chave de
                //criptografia e o algoritmo de segurança empregados na geração
                //de assinaturas digitais para o tokens
                var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);

                var token = new JwtSecurityToken(
                    issuer: "http://localhost:5000",
                    audience: "http://localhost:5001/",
                    claims: claims,
                    expires: DateTime.Now.AddHours(1),
                    signingCredentials: creds);

                //Atualiza o Token do usuário
                usuario.token = new JwtSecurityTokenHandler().WriteToken(token);
                _context.usuario.Update(usuario);
                _context.SaveChanges();

                var resposta = new Object();

                return(Ok(new {
                    sucesso = true,
                    mensagem = "Bem vindo",
                    data = resposta
                }));
            }

            return(Unauthorized("Credenciais Inválidas.."));
        }
        public ActionResult <RetornoView <Usuario> > Create([FromBody] Usuario usuario)
        {
            //var usuarioLogado = _usuarioRepository.usuarioLogado(User.Identity.Name);
            try
            {
                usuario.Senha = TrataHash.GeraMD5Hash(usuario.Senha);
                _usuarioRepository.Add(usuario);
            }
            catch (Exception ex)
            {
                var result = new RetornoView <Usuario>()
                {
                    sucesso = false, erro = ex.Message
                };
                return(BadRequest(result));
            }

            var resultado = new RetornoView <Usuario>()
            {
                data = usuario, sucesso = true
            };

            return(CreatedAtRoute("GetUsuario", new { id = usuario.Id }, resultado));
        }
Beispiel #6
0
        public IActionResult RequestToken([FromBody] Usuario request)
        {
            var usuario = _context.usuario
                          .Where(e => e.Email == request.Email)
                          .Where(t => t.Senha == TrataHash.GeraMD5Hash(request.Senha))
                          .FirstOrDefault();

            if (usuario != null)
            {
                var claims = new[]
                {
                    new Claim(ClaimTypes.Name, request.Email)
                };

                //Recebe uma instância da classe SymmetricSecurityKey
                //Armazena a chave de criptografia usada na criação do token
                var key = new SymmetricSecurityKey(
                    Encoding.UTF8.GetBytes(_configuration["SecurityKey"]));

                //Recebe um objeto do tipo SigninCredentials contendo a chave de
                //criptografia e o algoritmo de segurança empregados na geração
                //de assinaturas digitais para o tokens
                var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);

                var Token = new JwtSecurityToken(
                    issuer: "http://localhost:5000",
                    audience: "http://localhost:5001/",
                    claims: claims,
                    expires: DateTime.Now.AddHours(1),
                    signingCredentials: creds);

                //Atualiza o Token do usuário
                usuario.Token = new JwtSecurityTokenHandler().WriteToken(Token);
                _context.usuario.Update(usuario);
                _context.SaveChanges();

                var resposta = new Object();

                //Verifica o tipo de usuario para retonar o objeto compativel
                switch (request.Tipo)
                {
                //Trocar Baerer por Bearer no front
                case false:

                    var administrador = _context.usuario
                                        .Where(c => c.Id == usuario.Id)
                                        .First();

                    resposta = new { usuario = usuario, Token = new JwtSecurityTokenHandler().WriteToken(Token) };

                    break;

                case true:
                    var funcionario = _context.usuario
                                      .Where(c => c.Id == usuario.Id)
                                      .First();

                    resposta = new { usuario = usuario, Token = new JwtSecurityTokenHandler().WriteToken(Token) };

                    break;
                }


                return(Ok(new {
                    sucesso = true,
                    mensagem = "Bem vindo",
                    data = resposta
                }));
            }

            return(Unauthorized("Credenciais Inválidas ou Usuario Desativado.."));
        }