Exemplo n.º 1
0
        public PlanoEnsino() : base("PlanoEnsino")
        {
            this.RequiresAuthentication();

            Get["/"] = p =>
            {
                var trilhaServices = new TrilhaServices();
                return(new DtoResponse(trilhaServices.ObterNiveisPorTrilhaUsuario(AcessoAtual.Nivel.Trilha.ID, AcessoAtual.Usuario.ID)));
            };
        }
Exemplo n.º 2
0
        public QuestionarioModule() : base("Questionario")
        {
            this.RequiresAuthentication();

            // Obter dados do questionário.
            // nivel: Id do nível (mapa)
            // tipo: 1 - pré, 2 - pós, 3 - prova.
            Get["/{tipo:int}/{superAdmin:bool}"] =
                Get["solucao/{itemTrilhaId:int}/{superAdmin:bool}"] = p =>
            {
                bool superAdmin = p.superAdmin != null && p.superAdmin;

                if (superAdmin)
                {
                    var usuario = new ManterUsuario().ObterUsuarioPorID(AcessoAtual.Usuario.ID);

                    var podeSerSuperAdmin = usuario.ListaPerfil.Any(x => x.Perfil.ID == (int)enumPerfil.AdministradorPortal);

                    if (podeSerSuperAdmin == false)
                    {
                        throw new ResponseException(enumResponseStatusCode.PermissaoNegadaSuperAcesso);
                    }
                }

                if (!superAdmin)
                {
                    VerificarBloqueio();
                }

                var trilhaService = new TrilhaServices();

                var tipoQuestionarioAssociacao = trilhaService.ObterTipoQuestionario(AcessoAtual, p.tipo, p.itemTrilhaId, superAdmin);

                return(new DtoResponse(trilhaService.ObterQuestionario(AcessoAtual, tipoQuestionarioAssociacao, p.itemTrilhaId, superAdmin)));
            };

            Post["/"] =
                Post["/{superAdmin:bool}"] = p =>
            {
                VerificarBloqueio();
                // Fazer o bind dos valores do POST para um objeto fortemente tipado.
                DTOInformarRespostaQuestionario respostasViewModel = this.Bind();

                bool superAdmin = p.superAdmin != null && p.superAdmin;

                return(new DtoResponse(new TrilhaServices().InformarRespostasQuestionario(AcessoAtual, respostasViewModel, superAdmin)));
            };

            Get["/participacao/{itemTrilha:int}"] = p =>
            {
                int itemTrilha = (int)p.itemTrilha;
                return(new DtoResponse(new TrilhaServices().ObterQuestionarioParticipacao(AcessoAtual, itemTrilha)));
            };
        }
Exemplo n.º 3
0
        public MapaModule() : base("Mapa")
        {
            this.RequiresAuthentication();

            // Retornar os dados do mapa.
            Get["/"] = p =>
            {
                var trilhaServices = new TrilhaServices();

                return(new DtoResponse(trilhaServices.ObterDadosMapa(AcessoAtual), trilhaServices.ObterMensagensGuiaMapa(AcessoAtual.Matricula)));
            };

            // Retornar os créditos do nível da trilha.
            Get["/Creditos"] = p => new DtoResponse(new { Creditos = (AcessoAtual.Nivel.Trilha.Credito != "") ? AcessoAtual.Nivel.Trilha.Credito : "", NomeTrilha = (AcessoAtual.Nivel.Trilha.Nome != "") ? AcessoAtual.Nivel.Trilha.Nome : "" });

            // Retornar o Ranking dos usuários do nível da trilha.
            // page: página do ranking.
            // nome: filtro de nome do aluno.
            Get["/Ranking/{page?}"] =
                Get["/Ranking/{page:int}/{nome?}/"]           =
                    Get["/Ranking/{page:int}/{nome?}/{uf?}/"] =
                        Get["/Ranking/{page:int}/{nome:string}/{uf?}/{itensPorPagina?}/"] = p =>
            {
                return(new DtoResponse(new TrilhaServices().ObterRanking(
                                           AcessoAtual.Nivel,
                                           p.page.HasValue ? p.page : 0,
                                           p.nome.HasValue ? p.nome : null,
                                           p.uf.HasValue ? p.uf : null,
                                           p.itensPorPagina,
                                           AcessoAtual
                                           )));
            };

            // Obter dados do questionário. UC006 - Solução Sebrae Atividade Dissertativa - PI07 a PI11
            Get["/participacao/{itemTrilha:int}"] = p =>
            {
                VerificarBloqueio();
                // Retornar os dados do Questionário.
                return(new DtoResponse(new TrilhaServices().ObterParticipacao(AcessoAtual.Matricula, AcessoAtual.Nivel, p.itemTrilha)));
            };

            Get["/notificacoes"] = p =>
            {
                return(new DtoResponse(new TrilhaServices().ObterNotificacoes(AcessoAtual.Matricula)));
            };

            //Get["/usuarioaprovado"] = p => new DtoResponse(new TrilhaServices().UsuarioAprovado(AcessoAtual.Matricula));
        }
Exemplo n.º 4
0
        public MochilaModule() : base("Mochila")
        {
            this.RequiresAuthentication();

            // Obter dados da mochila, recebe o ID do Usuário, não o ID da matrícula do usuário em Trilhas
            Get["/{userId:int}"] = p =>
            {
                VerificarBloqueio();

                var trilhaServices = new TrilhaServices();

                var mensagensGuia = p.userId > 0 ? null : trilhaServices.ObterMensagensGuiaMochila(AcessoAtual.Matricula, AcessoAtual.Nivel);

                // Retornar os dados da mochila
                return
                    (new DtoResponse(
                         trilhaServices.ObterDadosMochila(p.userId > 0 ? p.userId : AcessoAtual.Usuario.ID,
                                                          AcessoAtual), mensagensGuia));
            };

            Get["/extrato"] = p => new DtoResponse(new TrilhaServices().ObterExtrato(AcessoAtual, AcessoAtual.Usuario.ID, AcessoAtual.Nivel.ID));
        }
Exemplo n.º 5
0
        public LojaModule() : base("Loja")
        {
            this.RequiresAuthentication();

            // Obter dados da loja. Tem que passar o Id do nível (Mapa) e o Id da loja (Tópico Temático)
            Get["/{lojaId:int}"] = p =>
            {
                var trilhaServices = new TrilhaServices();

                // Objeto da loja obtido no método de dados da loja. É usado pra obter as mensagens da guia.
                PontoSebrae pontoSebrae;

                trilhaServices.VerificarConclusaoMissao(AcessoAtual);

                // Retornar os dados da loja.
                var response = new DtoResponse(
                    trilhaServices.ObterDadosLoja(AcessoAtual, p.lojaId, out pontoSebrae),
                    trilhaServices.ObterMensagensGuiaLoja(AcessoAtual.Matricula, pontoSebrae)
                    );

                return(response);
            };

            Get["/cambio/mensagemguia"] = p =>
            {
                return(new DtoResponse(new TrilhaServices().ObterMensagensGuiaCambio(AcessoAtual.Matricula)));
            };

            Post["/Cambio"] = p =>
            {
                VerificarBloqueio();
                // Retornar a quantidade de moedas de ouro.

                return(new DtoResponse(new TrilhaServices().ConverterMoedasOuro(AcessoAtual)));
            };
        }
Exemplo n.º 6
0
        private void AlterarItemTrilhaParticipacao()
        {
            if (_ItemTrilhaParticipacao != null)
            {
                ItemTrilhaParticipacao itemNovo = new ItemTrilhaParticipacao();
                itemNovo.UsuarioTrilha     = _ItemTrilhaParticipacao.UsuarioTrilha;
                itemNovo.ItemTrilha        = _ItemTrilhaParticipacao.ItemTrilha;
                itemNovo.Monitor           = new BMUsuario().ObterUsuarioLogado();
                itemNovo.TextoParticipacao = txtObservacao.Text;
                itemNovo.Visualizado       = false;
                itemNovo.TipoParticipacao  = enumTipoParticipacaoTrilha.InteracaoMonitor;
                itemNovo.DataEnvio         = DateTime.Now;

                //Anexo
                if (fupldArquivoEnvio != null && fupldArquivoEnvio.PostedFile != null && fupldArquivoEnvio.PostedFile.ContentLength > 0)
                {
                    itemNovo.FileServer = ObterAnexo();
                }
                else
                {
                    itemNovo.FileServer = null;
                }

                try
                {
                    new ManterItemTrilhaParticipacao().CadastrarHistorico(itemNovo, chkEnviarEmail.Checked);
                }
                catch (EmailException)
                {
                    WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, "Erro ao enviar o email. Dados salvos com sucesso!");
                }

                try
                {
                    bool?rbautorizado = null;
                    if (rblAutorizadoModal.SelectedValue == "S")
                    {
                        rbautorizado = true;
                    }
                    else if (rblAutorizadoModal.SelectedValue == "N")
                    {
                        rbautorizado = false;
                    }

                    if (rbautorizado != _ItemTrilhaParticipacao.Autorizado)
                    {
                        AlterarStatusItemTrilhaParticipacao(_ItemTrilhaParticipacao, rbautorizado);
                    }


                    // Pega uma nova referência já que a antiga de ItemTrilha não tem a autorização acima
                    itemNovo.ItemTrilha = new ManterItemTrilha().ObterItemTrilhaPorID(itemNovo.ItemTrilha.ID);

                    // Inclui caso seja a data de última participação do usuário, precisa ficar depois do salvamento da autorização
                    new ManterTrilhaTopicoTematicoParticipacao().IncluirUltimaParticipacao(itemNovo.UsuarioTrilha, itemNovo.ItemTrilha);

                    // Se foi aprovado, criar visualização da mensagem para o aluno.
                    if (itemNovo.ItemTrilha.ObterStatusParticipacoesItemTrilha(itemNovo.UsuarioTrilha) ==
                        enumStatusParticipacaoItemTrilha.Aprovado)
                    {
                        var mensagem = new ManterMensagemGuia().ObterPorId(enumMomento.DemaisConclusoesSolucaoSebrae);

                        TrilhaServices.RegistrarVisualizacao(itemNovo.UsuarioTrilha, mensagem, null, itemNovo.ItemTrilha, salvarData: false);
                    }

                    try
                    {
                        MontarPainelSe(_ItemTrilhaParticipacao.ID);
                        WebFormHelper.ExibirMensagem(enumTipoMensagem.Sucesso, "Dados alterados com sucesso");
                    }
                    catch (Exception)
                    {
                        WebFormHelper.ExibirMensagem(enumTipoMensagem.Atencao, "A participação do aluno foi alterada com sucesso, porém não foi possível atualizar a tela. Atualize a tela manualmente.");
                    }
                }
                catch
                {
                    WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, "Erro ao atualizar a participação do usuário");
                }
            }
        }
Exemplo n.º 7
0
        public SolucaoModule() : base("solucao")
        {
            this.RequiresAuthentication();

            Get["/{itemTrilhaId:int}"] = p =>
            {
                // Retornar os dados da solução trilheiro.
                return(new DtoResponse(new TrilhaServices().ObterDadosSolucaoTrilheiro(p.itemTrilhaId)));
            };

            Get["/status/{solucaoSebraeId:int}"] = p =>
            {
                return(new DtoResponse(new TrilhaServices().ObterStatusSolucaoSebrae(p.solucaoSebraeId, AcessoAtual)));
            };

            Get["/Curtir/{itemTrilhaId:int}/{acao:int}"] = p =>
            {
                VerificarBloqueio();
                // Retornar Sucesso ou não da operação.
                return(new DtoResponse(new TrilhaServices().DefinirCurtida(p.itemTrilhaId, (enumTipoCurtida)p.acao, AcessoAtual.Matricula)));
            };

            Get["/Curtidas/{itemTrilhaId:int}/{soCurtidas:bool}"] = p =>
            {
                // Retornar lista ou não da operação.
                return(new DtoResponse(new TrilhaServices().ListarCurtidas(p.itemTrilhaId, p.soCurtidas, AcessoAtual.Matricula)));
            };

            // UC007 - Inserir Solucao Trilheiro
            Post["/solucaotrilheiro/new"] = paramentros =>
            {
                VerificarBloqueio();
                // Fazer o bind dos valores do POST para um objeto fortemente tipado.
                DTOSolucaoTrilheiro dtoSolucaoTrilheiro = this.Bind();

                return(new DtoResponse(new TrilhaServices().CadastrarSolucaoTrilheiro(dtoSolucaoTrilheiro, AcessoAtual.Matricula, AcessoAtual.Nivel)));
            };

            // UC007 - Carregar Campos select
            Get["/solucaotrilheiro/{lojaId:int}"] = p =>
            {
                VerificarBloqueio();

                var pontoSebrae = AcessoAtual.Nivel.ListaPontoSebrae.FirstOrDefault(x => x.ID == p.lojaId);

                // Se o usuário não estiver matriculado, não poderá exibir a trilha.
                if (pontoSebrae == null)
                {
                    throw new ResponseException(enumResponseStatusCode.RegistroNaoEncontrado, "Loja não encontrada.");
                }

                var trilhaServices = new TrilhaServices();

                // Retornar os dados da loja.
                var retorno = new DtoResponse(
                    trilhaServices.ObterDadosCadastroSolucaoTrilheiro(AcessoAtual.Nivel, pontoSebrae, AcessoAtual.Matricula),
                    trilhaServices.ObterMensagensGuiaSolucaoTrilheiro(AcessoAtual.Matricula));

                return(retorno);
            };

            Get["/disponibilidade/{itemTrilhaId:int}"] = p =>
            {
                return(new DtoResponse(new TrilhaServices().ConsultarDisponibilidadeMatriculaSolucaoEducacional(AcessoAtual, p.itemTrilhaId)));
            };

            Post["/matricularturma/{itemTrilhaId:int}"] = p =>
            {
                VerificarBloqueio();
                var turma = this.Bind <DTOMatriculaTurma>().Turma;

                if (turma == null)
                {
                    throw new ResponseException(enumResponseStatusCode.TurmaNaoEncontrada);
                }

                // Realiza inscrição do usuário na turma
                return(new DtoResponse(new TrilhaServices().MatriculaTurma(AcessoAtual, turma.Value, p.itemTrilhaId)));
            };

            Post["/matricularsolucaoeducacional/{itemTrilhaId:int}"] = p =>
            {
                VerificarBloqueio();
                var dados = this.Bind <DTOMatriculaTurma>();

                if (dados.SolucaoEducacional == null)
                {
                    throw new ResponseException(enumResponseStatusCode.SolucaoEducacionalNaoEncontrada);
                }

                if (dados.Oferta == null)
                {
                    throw new ResponseException(enumResponseStatusCode.OfertaNaoEncontrada);
                }

                // Realiza inscrição do usuário na turma
                return(new DtoResponse(new TrilhaServices().MatriculaSolucaoEducacional(AcessoAtual, dados.SolucaoEducacional.Value, dados.Oferta.Value, p.itemTrilhaId)));
            };

            // UC006 - Solução Sebrae Atividade Dissertativa - PI07 a PI11
            Post["/participacao/new"] = parametro =>
            {
                VerificarBloqueio();
                // Fazer o bind dos valores do POST para um objeto fortemente tipado.
                DTOParticipacao dtoParticipacao = this.Bind();

                return(new DtoResponse(new TrilhaServices().CadastrarItemTrilhaParticipacao(dtoParticipacao, AcessoAtual.Matricula, AcessoAtual.Nivel)));
            };

            Post["/conhecigame"] = parametro =>
            {
                DTOParticipacaoConheciGame dtoParicipacao = this.Bind();
                var response = new DtoResponse(new TrilhaServices().informarParticipacaoConheciGame(dtoParicipacao));
                return(response);
            };

            //Excluir Solucao trilheiro
            Delete["/excluir/{itemTrilhaId:int}"] = p =>
            {
                return(new DtoResponse(new TrilhaServices().ExcluirSolucaoTrilheiro(AcessoAtual, p.itemTrilhaId)));
            };

            Get["/obtermensagensguia/{lojaId:int}"] = p =>
            {
                var loja = new ManterTrilhaTopicoTematico().ObterTrilhaTopicoTematicoPorID(p.lojaId);

                return(new DtoResponse(new TrilhaServices().ObterMensagensGuiaConclusaoSolucaoSebrae(AcessoAtual.Matricula, loja)));
            };

            Post["/avaliar"] = parametro =>
            {
                DTOAvaliacaoSolucaoSebrae dto = this.Bind();
                var response = new DtoResponse(new TrilhaServices().InformarAvaliacao(dto.ID_ItemTrilha, dto.Resenha, dto.Avaliacao, AcessoAtual.Matricula));
                return(response);
            };
        }