コード例 #1
0
 protected void dgvFornecedor_RowCommand(object sender, GridViewCommandEventArgs e)
 {
     if (e.CommandName.Equals("excluir"))
     {
         try
         {
             manterFornecedor = new ManterFornecedor();
             int idFornecedor = int.Parse(e.CommandArgument.ToString());
             manterFornecedor.ExcluirFornecedor(idFornecedor);
             WebFormHelper.ExibirMensagem(enumTipoMensagem.Sucesso, "Registro excluído com sucesso!", "ListarFornecedor.aspx");
         }
         catch (AcademicoException ex)
         {
             WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, ex.Message);
             return;
         }
     }
     else if (e.CommandName.Equals("editar"))
     {
         int idTrilhaFormaAquisicao = int.Parse(e.CommandArgument.ToString());
         //Session.Add("FornecedorEdit", idTrilhaFormaAquisicao);
         Response.Redirect("EdicaoFornecedor.aspx?Id=" + idTrilhaFormaAquisicao.ToString(), false);
     }
 }
コード例 #2
0
        protected void btnPesquisar_Click(object sender, EventArgs e)
        {
            try
            {
                Fornecedor formaAquisicao = ObterObjetoFornecedor();
                manterFornecedor = new ManterFornecedor();
                IList <Fornecedor> ListaTrilhaFormaAquisicao = manterFornecedor.ObterFornecedorPorFiltro(formaAquisicao);

                if (ListaTrilhaFormaAquisicao != null && ListaTrilhaFormaAquisicao.Count > 0)
                {
                    WebFormHelper.PreencherGrid(ListaTrilhaFormaAquisicao, this.dgvFornecedor);
                    pnlFornecedor.Visible = true;
                }
                else
                {
                    pnlFornecedor.Visible = false;
                    WebFormHelper.ExibirMensagem(enumTipoMensagem.Alerta, "Nenhuma Informação Encontrada");
                }
            }
            catch (AcademicoException ex)
            {
                WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, ex.Message);
            }
        }
コード例 #3
0
        private void PreencherComboFornecedor()
        {
            var fornecedores = new ManterFornecedor().ObterTodosFornecedores().Where(x => x.FornecedorSistema.HasValue);

            var usuario = new ManterUsuario().ObterUsuarioLogado();

            var fornecedoresBanco = Enum.GetValues(typeof(enumFornecedor)).Cast <int>();


            fornecedores = (from f in fornecedores
                            where
                            f.FornecedorSistema == enumFornecedor.UCSebrae ||
                            f.FornecedorSistema != null &&
                            f.ListaFornecedorUF.Any(x => x.UF.ID == usuario.UF.ID) &&
                            f.PermiteGestaoSGUS == true
                            select new classes.Fornecedor
            {
                ID = f.FornecedorSistema.HasValue ? (int)f.FornecedorSistema.Value : f.ID,
                Nome = f.Nome
            }).ToList();


            WebFormHelper.PreencherLista(fornecedores.ToList(), this.ddlFornecedor, false, true);
        }
コード例 #4
0
        public void InserirHistoricoExtraCurricular(DTOHistoricoExtraCurricular pHistoricoExtraCurricular, AuthenticationRequest autenticacao)
        {
            try
            {
                // Caso seja cadastro e o arquivo não esteja informado, retorna o erro de validação.
                if ((pHistoricoExtraCurricular.ID == 0 &&
                     string.IsNullOrEmpty(pHistoricoExtraCurricular.CaminhoArquivoParticipacao)))
                {
                    throw new AcademicoException("O arquivo anexo é obrigatório");
                }

                /*
                 * TODO: Atualmente o usuário do IIS não está permitindo a verficação do arquivo no file server,
                 * investigar o porque do file exists não estar funcionando mesmo com o arquivo estando correto no servidor.
                 *
                 * Verifica inclusão do arquivo.
                 * string caminho = string.Concat(ConfiguracaoSistemaUtil.ObterInformacoes(enumConfiguracaoSistema.RepositorioUpload).Registro, @"\", pHistoricoExtraCurricular.CaminhoArquivoParticipacao);
                 *
                 * if (pHistoricoExtraCurricular.ID == 0 && !File.Exists(caminho))
                 * {
                 *  throw new AcademicoException(caminho);
                 * }
                 */

                var historico = pHistoricoExtraCurricular.ID > 0
                    ? new BMHistoricoExtraCurricular().ObterPorID(pHistoricoExtraCurricular.ID)
                    : new HistoricoExtraCurricular();

                historico.TextoAtividade      = pHistoricoExtraCurricular.TextoAtividade;
                historico.Usuario             = new BMUsuario().ObterPorId(pHistoricoExtraCurricular.IdUsuario);
                historico.CargaHoraria        = pHistoricoExtraCurricular.CargaHoraria;
                historico.DataFimAtividade    = Convert.ToDateTime(pHistoricoExtraCurricular.DataFimAtividade);
                historico.DataInicioAtividade = Convert.ToDateTime(pHistoricoExtraCurricular.DataInicioAtividade);
                historico.SolucaoEducacionalExtraCurricular = pHistoricoExtraCurricular.NomeSolucaoExtraCurricular;
                historico.Auditoria   = new Auditoria(autenticacao.Login);
                historico.Instituicao = pHistoricoExtraCurricular.NomeInstituicao;
                if (pHistoricoExtraCurricular.IdFornecedor.HasValue && pHistoricoExtraCurricular.IdFornecedor.Value != 0)
                {
                    var manterFornecedor = new ManterFornecedor();
                    var fornecedor       = manterFornecedor.ObterFornecedorPorID(pHistoricoExtraCurricular.IdFornecedor.Value);
                    historico.Fornecedor = fornecedor;
                }
                else
                {
                    historico.Fornecedor = null;
                }
                if (!string.IsNullOrEmpty(pHistoricoExtraCurricular.CaminhoArquivoParticipacao))
                {
                    var fs = new FileServer
                    {
                        NomeDoArquivoNoServidor = pHistoricoExtraCurricular.CaminhoArquivoParticipacao,
                        Auditoria             = new Auditoria(autenticacao.Login),
                        TipoArquivo           = pHistoricoExtraCurricular.TipoArquivoComprovacao,
                        NomeDoArquivoOriginal = pHistoricoExtraCurricular.NomeArquivoComprovacao,
                        MediaServer           = true
                    };

                    new BMFileServer().Salvar(fs);
                    historico.FileServer = fs;
                }

                new BMHistoricoExtraCurricular().Salvar(historico);
            }
            catch (Exception ex)
            {
                // Caso a exceção seja violação da chave que não permite atividades com mesmo nome,
                // do mesmo usuário e com a mesma data de início, retorna mensagem de erro amigável.
                var sqlException = ex.InnerException as SqlException;
                if (sqlException != null && sqlException.Number == 2627)
                {
                    throw new AcademicoException(
                              "Você já possui uma atividade extracurricular com este mesmo nome e com a mesma data de início. Altere os dados abaixo ou vá na listagem do seu histórico acadêmico e altere a atividade existente.");
                }

                ErroUtil.Instancia.TratarErro(ex);
            }
        }
コード例 #5
0
        private void incluirUfs(Fornecedor fornecedor)
        {
            var manterFornecedor = new ManterFornecedor();

            manterFornecedor.IncluirUfs(fornecedor, ucUF.IdsUfsMarcados);
        }
コード例 #6
0
        public AuthModule() : base("Auth")
        {
            Get["/"] = p =>
            {
                return("Token Valid!");
            };

            Post["Login"] = p =>
            {
                var dadosAcesso = this.Bind <DTODadosAcesso>();

                var usuario = new ManterUsuario().ObterTodosIQueryable().Where(x => x.CPF == dadosAcesso.Login)
                              .Select(x => new Usuario
                {
                    ID    = x.ID,
                    Senha = x.Senha
                })
                              .FirstOrDefault();

                if (usuario == null)
                {
                    return("Usuário não existe.");
                }

                if (usuario.Senha != dadosAcesso.Senha)
                {
                    return("Senha inválida.");
                }

                var nivel = manterTrilhaNivel.ObterTrilhaNivelPorID(dadosAcesso.NivelID);

                if (nivel == null || !nivel.UsuarioPossuiMatricula(usuario.ID))
                {
                    return(null);
                }

                return
                    (Response.AsJson(JsonWebToken.Encode(new { id = usuario.ID, nid = nivel.ID },
                                                         manterUsuario.GerarTokenTrilha(usuario), JwtHashAlgorithm.HS256)));
            };

            Post["LoginFornecedor"] = p =>
            {
                var dadosAcesso = this.Bind <DTODadosAcesso>();

                var usuario = manterUsuario.ObterPorCPF(dadosAcesso.Login);

                if (usuario == null)
                {
                    return("Usuário não existe.");
                }

                if (usuario.Senha != dadosAcesso.Senha)
                {
                    return("Senha inválida.");
                }

                var nivel = manterTrilhaNivel.ObterTrilhaNivelPorID(dadosAcesso.NivelID);

                if (!nivel.UsuarioPossuiMatricula(usuario.ID))
                {
                    return(null);
                }

                var manterFornecedor = new ManterFornecedor();
                var fornecedor       = manterFornecedor.ObterFornecedorPorID(25);

                if (fornecedor == null)
                {
                    return("Fornecedor não existe.");
                }

                return(Response.AsJson(JsonWebToken.Encode(new { id = usuario.ID, fase = 1, itrid = 1, nid = nivel.ID }, fornecedor.TextoCriptografia, JwtHashAlgorithm.HS256), HttpStatusCode.OK));
            };
        }
コード例 #7
0
        public void Initialize(IPipelines pipelines)
        {
            StatelessAuthentication.Enable(pipelines, new StatelessAuthenticationConfiguration(ctx =>
            {
                if (ctx.Request.Method == "OPTIONS")
                {
                    return(null);
                }

                var manterUsuario       = new ManterUsuario();
                var manterUsuarioTrilha = new ManterUsuarioTrilha();
                var manterTrilhaNivel   = new ManterTrilhaNivel();
                var manterFornecedor    = new ManterFornecedor();

                try
                {
                    var jwtToken = ctx.Request.Headers.Authorization;

                    if (string.IsNullOrEmpty(jwtToken))
                    {
                        return(null);
                    }

                    var payload = JsonWebToken.DecodeToObject(jwtToken, "", false) as IDictionary <string, object>;

                    if (payload != null)
                    {
                        var usuario = manterUsuario.ObterTodosIQueryable().Where(x => x.ID == (int)payload["id"])
                                      .Select(x => new Usuario
                        {
                            ID   = x.ID,
                            Nome = x.Nome,
                            CPF  = x.CPF,
                            TrilhaTokenExpiry = x.TrilhaTokenExpiry,
                            TrilhaToken       = x.TrilhaToken,
                            Senha             = x.Senha
                        })
                                      .FirstOrDefault();

                        if (usuario != null && usuario.TrilhaTokenExpiry > DateTime.Now)
                        {
                            JsonWebToken.Decode(jwtToken, usuario.TrilhaToken);

                            TrilhaNivel nivel       = manterTrilhaNivel.ObterTrilhaNivelPorID((int)payload["nid"]);
                            UsuarioTrilha matricula = null;

                            if (payload.ContainsKey("experimenta") && !payload["experimenta"].Equals("experimente"))
                            {
                                if (!nivel.UsuarioPossuiMatricula((int)payload["id"]))
                                {
                                    return(null);
                                }

                                matricula = manterUsuarioTrilha.ObterPorUsuarioNivel(usuario.ID, nivel.ID);

                                if (matricula == null)
                                {
                                    return(null);
                                }
                            }
                            else
                            {
                                matricula = new UsuarioTrilha
                                {
                                    ID              = 0,
                                    TrilhaNivel     = nivel,
                                    StatusMatricula = Dominio.Enumeracao.enumStatusMatricula.Inscrito
                                };
                            }

                            manterUsuario.AdicionarTempoTokenTrilha(usuario);

                            return(new UserIdentity
                            {
                                UserName = usuario.CPF,
                                Usuario = usuario,
                                Matricula = matricula,
                                Nivel = nivel,
                                Payload = payload,
                                JwtToken = jwtToken
                            });
                        }

                        // Se chegou até aqui, verifica se o acesso é de fornecedor.
                        // Trazer os fornecedores apenas com os campos que interessam.
                        var fornecedores = manterFornecedor.ObterTodosIQueryable().Select(x => new Fornecedor
                        {
                            ID   = x.ID,
                            Nome = x.Nome,
                            TextoCriptografia = x.TextoCriptografia
                        }).ToList();

                        // Tentar decodificar o JWT para verificar se o acesso é de fornecedor.
                        foreach (var fornecedor in fornecedores)
                        {
                            try
                            {
                                JsonWebToken.Decode(jwtToken, fornecedor.TextoCriptografia);

                                return(new UserIdentity()
                                {
                                    UserName = fornecedor.Nome,
                                    Fornecedor = fornecedor,
                                    Payload = payload
                                });
                            }
                            catch
                            {
                                // Ignored.
                            }
                        }
                    }

                    return(null);
                }
                catch (Exception ex)
                {
                    return(null);
                }
                finally
                {
                    manterUsuario.Dispose();
                    manterUsuarioTrilha.Dispose();
                    manterTrilhaNivel.Dispose();
                    manterFornecedor.Dispose();;
                }
            }));
        }