Ejemplo n.º 1
0
        public SupervisorLogistica obter(String cpfSupervisor)
        {
            SupervisorLogistica sup = null;
            var res = conn.Query <SupervisorLogistica, CentroDistribuicao, Municipio, UF, SupervisorLogistica>("select s.cpf as cpfSupervisor, s.*, " +
                                                                                                               "cd.codigo as codigoCd, cd.*, " +
                                                                                                               "m.codigo as codigoMunicipio, m.*," +
                                                                                                               "uf.* " +
                                                                                                               "from Supervisor_Logistica s " +
                                                                                                               "inner join Centro_Distribuicao cd " +
                                                                                                               "on s.codCentroDistribuicao = cd.codigo " +
                                                                                                               "inner join Municipio m on cd.codMunicipio = m.codigo " +
                                                                                                               "inner join Uf uf on m.siglaUf = uf.sigla " +
                                                                                                               "where s.cpf = @cpf",
                                                                                                               (supervisor, cd, mun, uf) => {
                supervisor.CentroDistribuicao = cd;
                cd.Municipio = mun;
                mun.Uf       = uf;
                return(supervisor);
            },
                                                                                                               new { cpf = cpfSupervisor },
                                                                                                               splitOn: "codigoCd, codigoMunicipio, siglaUf"
                                                                                                               );

            if (res.Count() > 0)
            {
                sup = res.ElementAt(0);
            }

            return(sup);
        }
Ejemplo n.º 2
0
        public IEnumerable <ItemColetaDTO> getItensPendentes([FromServices] IHttpContextAccessor accessor)
        {
            String cpfLogado        = accessor.HttpContext.User.Identity.Name;
            SupervisorLogistica sup = (new DAOSupervisorLogistica()).obter(cpfLogado);

            if (sup == null)
            {
                return(null);
            }
            else
            {
                return((new DAOItemTransporte()).obterItensPendentesColeta(sup.CentroDistribuicao.Codigo));
            }
        }
Ejemplo n.º 3
0
        public async Task <RoteiroColetaDTO> getRoteiroCalculado(String tipo, [FromBody] ParadaRoteiroColetaDTO[] paradas, [FromServices] IHttpContextAccessor accessor)
        {
            String cpfLogado = accessor.HttpContext.User.Identity.Name;

            SupervisorLogistica sup = (new DAOSupervisorLogistica()).obter(cpfLogado);

            RoteiroColetaDTO roteiro = null;

            if (sup != null)
            {
                if (tipo == "auto")
                {
                    roteiro = FacadeRotas.gerarRoteiroAutomatico(paradas, sup.CentroDistribuicao);
                }
                else
                {
                    roteiro = FacadeRotas.gerarRoteiroManual(paradas, sup.CentroDistribuicao);
                }
            }

            return(roteiro);
        }
Ejemplo n.º 4
0
        public object Post(
            [FromBody] Usuario usuario,
            [FromServices] DAOUsuario usersDAO,
            [FromServices] SigningConfigurations signingConfigurations,
            [FromServices] TokenConfigurations tokenConfigurations)
        {
            bool    credenciaisValidas = false;
            Usuario usuarioBase        = null;

            if (usuario != null && !String.IsNullOrWhiteSpace(usuario.Cpf))
            {
                usuarioBase        = usersDAO.obter(usuario.Cpf);
                credenciaisValidas = (usuarioBase != null &&
                                      usuario.Cpf == usuarioBase.Cpf &&
                                      usuario.Senha == usuarioBase.Senha);
            }

            if (credenciaisValidas)
            {
                ClaimsIdentity identity = new ClaimsIdentity(
                    new GenericIdentity(usuarioBase.Cpf, "Login"),
                    new[] {
                    new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString("N")),
                    new Claim(JwtRegisteredClaimNames.UniqueName, usuarioBase.Cpf),
                    new Claim("role", usuarioBase.Perfil)
                }
                    );

                DateTime dataCriacao   = DateTime.Now;
                DateTime dataExpiracao = dataCriacao +
                                         TimeSpan.FromSeconds(tokenConfigurations.Seconds);

                var handler       = new JwtSecurityTokenHandler();
                var securityToken = handler.CreateToken(new SecurityTokenDescriptor
                {
                    Issuer             = tokenConfigurations.Issuer,
                    Audience           = tokenConfigurations.Audience,
                    SigningCredentials = signingConfigurations.SigningCredentials,
                    Subject            = identity,
                    NotBefore          = dataCriacao,
                    Expires            = dataExpiracao
                });
                var token = handler.WriteToken(securityToken);

                CentroDistribuicao cd = null;
                if (usuarioBase.Perfil == "Supervisor de Distribuição")
                {
                    SupervisorLogistica sup = (new DAOSupervisorLogistica()).obter(usuarioBase.Cpf);
                    if (sup != null)
                    {
                        cd = sup.CentroDistribuicao;
                    }
                }

                return(new
                {
                    sucesso = true,
                    criacaoToken = dataCriacao.ToString("yyyy-MM-dd HH:mm:ss"),
                    tokenExpiraEm = dataExpiracao.ToString("yyyy-MM-dd HH:mm:ss"),
                    token = token,
                    mensagem = "OK",
                    usuario = usuarioBase,
                    cd = cd
                });
            }
            else
            {
                return(new
                {
                    sucesso = false,
                    mensagem = "Falha na autenticação."
                });
            }
        }