Example #1
0
 public ManterTrilhaNivel()
 {
     _bmTrilhaNivel = new BMTrilhaNivel();
     _bmPontoSebrae = new BMPontoSebrae();
     _bmMissao      = new BMMissao();
     _bmItemTrilha  = new BMItemTrilha();
 }
Example #2
0
 public IList <TrilhaNivel> ObterTrilhaNivelPorTrilha(int pIdTrilha)
 {
     using (BMTrilhaNivel trilhaNivelBM = new BMTrilhaNivel())
     {
         using (BMTrilha tr = new BMTrilha())
         {
             return(trilhaNivelBM.ObterPorTrilha(tr.ObterPorId(pIdTrilha)));
         }
     }
 }
Example #3
0
        public Trilha RegistrarMatriculatrilha(int pID_Usuario, int pID_TrilhaNivel, AuthenticationRequest autenticacao)
        {
            Usuario     usuario     = new BMUsuario().ObterPorId(pID_Usuario);
            TrilhaNivel trilhaNivel = new BMTrilhaNivel().ObterPorID(pID_TrilhaNivel);

            if (ExisteNiveltrilhaPendente(trilhaNivel, usuario))
            {
                throw new Exception("Nível da Trilha bloqueado.");
            }

            UsuarioTrilha userTrilha = new UsuarioTrilha()
            {
                DataInicio       = DateTime.Now,
                DataLimite       = DateTime.Now.AddDays(trilhaNivel.QuantidadeDiasPrazo).Date,
                NivelOcupacional = usuario.NivelOcupacional,
                Uf              = usuario.UF,
                TrilhaNivel     = trilhaNivel,
                Usuario         = usuario,
                StatusMatricula = enumStatusMatricula.Inscrito,
                Auditoria       = new Auditoria(autenticacao.Login),
                AcessoBloqueado = false
            };


            if (ValidarMatriculaAtivaExistente(userTrilha))
            {
                throw new AcademicoException("Usuário já Matriculado na trilha.");
            }

            usuarioTrilhaBM = new BMUsuarioTrilha();
            usuarioTrilhaBM.Salvar(userTrilha);
            try
            {
                // Enviar Email
                new ManterUsuarioTrilha().EnviarEmailBoasVindas(userTrilha);
            }
            catch
            {
                //TODO: CRIAR LOG DE ERROS NO SISTEMA (29/03/2016)
            }
            return(trilhaNivel.Trilha);
        }
Example #4
0
        public IList <DTORankingTrilha> ConsultarRankingTrilha(int pIdTrilha, int pIdTrilhaNivel)
        {
            IList <UsuarioTrilha>    lstUt;
            IList <DTORankingTrilha> lstResult = new List <DTORankingTrilha>();

            // Se especificado o id de Nivel pega somente o ranking do nível
            var statusBanidos = new List <enumStatusMatricula>();

            statusBanidos.Add(enumStatusMatricula.CanceladoAdm);
            statusBanidos.Add(enumStatusMatricula.CanceladoAluno);
            statusBanidos.Add(enumStatusMatricula.CanceladoGestor);
            statusBanidos.Add(enumStatusMatricula.Abandono);

            if (pIdTrilhaNivel != 0)
            {
                var trilhaNivelBM = new BMTrilhaNivel();
                var tn            = trilhaNivelBM.ObterPorID(pIdTrilhaNivel);

                // Remover status cancelados e retornar os resultados.
                lstUt = tn.ListaUsuarioTrilha.Where(y => !statusBanidos.Contains(y.StatusMatricula)).OrderByDescending(x => x.QTEstrelas).ToList();

                byte posicaoRank = 1;
                //lstResult = new List<DTORankingTrilha>();
                foreach (var ut in lstUt)
                {
                    lstResult.Add(new DTORankingTrilha()
                    {
                        Posicaoranking              = posicaoRank,
                        IdUsuario                   = ut.ID,
                        EmailUsuario                = ut.Usuario.Email,
                        CPFUsuario                  = ut.Usuario.CPF,
                        EstadoUsuario               = ut.Usuario.Estado,
                        NomeUsuario                 = ut.Usuario.Nome,
                        UF                          = ut.Usuario.UF.Nome,
                        UFSigla                     = ut.Usuario.UF.Sigla,
                        DataInicio                  = ut.DataInicio.ToString("dd/MM/yyyy"),
                        DataFim                     = ut.DataFim.HasValue ? ut.DataFim.Value.ToString("dd/MM/yyyy") : string.Empty,
                        QuantidadeEstrelas          = ut.QTEstrelas == null ? byte.Parse("0") : ut.QTEstrelas.Value,
                        QuantidadeEstrelasPossiveis = ut.QTEstrelasPossiveis == null ? byte.Parse("0") : ut.QTEstrelasPossiveis.Value,
                        StatusMatricula             = ut.StatusMatricula
                    });
                    posicaoRank++;
                }

                // Se somente foi especificado o ID de trilha
            }
            else if (pIdTrilha != 0)
            {
                var rel = new RelatorioUsuarioTrilha();

                var ranking = rel.ConsultarRankingTrilhaUsuario(pIdTrilha).Where(x =>
                                                                                 !statusBanidos.Contains((enumStatusMatricula)x.StatusMatricula)).ToList();

                byte posicaoRank = 1;

                lstResult = new List <DTORankingTrilha>();

                foreach (var ut in ranking)
                {
                    lstResult.Add(new DTORankingTrilha
                    {
                        Posicaoranking              = posicaoRank,
                        IdUsuario                   = ut.ID_Usuario,                                                                // ut.ID
                        EmailUsuario                = ut.Email,                                                                     //ut.Usuario.Email
                        CPFUsuario                  = ut.CPF,                                                                       //ut.Usuario.CPF
                        EstadoUsuario               = ut.Estado,                                                                    // ut.Usuario.Estado
                        NomeUsuario                 = ut.Nome,                                                                      // ut.Usuario.Nome
                        UF                          = ut.UF_nome,                                                                   //ut.Usuario.UF.Nome
                        UFSigla                     = ut.UF_sigla,                                                                  // ut.Usuario.UF.Sigla
                        DataInicio                  = ut.DataInicio.ToString("dd/MM/yyyy"),                                         // ut.DataInicio
                        DataFim                     = ut.DataFim.HasValue ? ut.DataFim.Value.ToString("dd/MM/yyyy") : string.Empty, // ut.DataFim
                        QuantidadeEstrelas          = (byte)ut.QT_Estrelas,                                                         // ut.QTEstrelas
                        QuantidadeEstrelasPossiveis = (byte)ut.QT_EstrelasPossiveis,                                                // ut.QTEstrelasPossiveis
                        StatusMatricula             = (enumStatusMatricula)ut.StatusMatricula,                                      // ut.StatusMatricula
                        Nivel                       = ut.Nivel
                    });
                    posicaoRank++;
                }
            }
            else
            {
                throw new Exception("Deve ser passada o ID da Trilha ou o ID do Nível da Trilha.");
            }

            return(lstResult);
        }
Example #5
0
        private void PreencherCampos(ItemTrilha itemTrilhaEdicao)
        {
            if (itemTrilhaEdicao != null)
            {
                WebFormHelper.SetarValorNaCombo(itemTrilhaEdicao.Missao.PontoSebrae.TrilhaNivel.Trilha.ID.ToString(), ddlTrilha);

                ViewState.Add("idItemTrilha", itemTrilhaEdicao.ID);

                var listaTrilhaNivel =
                    new BMTrilhaNivel().ObterPorFiltro(new TrilhaNivel {
                    Trilha = _itemTrilhaEdicao.Missao.PontoSebrae.TrilhaNivel.Trilha
                });
                listaTrilhaNivel.Add(itemTrilhaEdicao.Missao.PontoSebrae.TrilhaNivel);

                WebFormHelper.PreencherLista(listaTrilhaNivel, ddlTrilhaNivel, false, true);

                WebFormHelper.SetarValorNaCombo(itemTrilhaEdicao.Missao.PontoSebrae.TrilhaNivel.ID.ToString(), ddlTrilhaNivel);

                if (itemTrilhaEdicao.Tipo != null)
                {
                    divFormaAquisicao.Visible = true;

                    WebFormHelper.SetarValorNaCombo(itemTrilhaEdicao.Tipo.ID.ToString(), ddlTipo);

                    switch ((enumTipoItemTrilha)itemTrilhaEdicao.Tipo.ID)
                    {
                    case enumTipoItemTrilha.Jogo:
                        divFaseJogo.Visible    = true;
                        divOrientacoes.Visible = true;

                        PreencherFasesJogo();

                        WebFormHelper.SetarValorNaCombo(((int)itemTrilhaEdicao.FaseJogo).ToString(), ddlFase);
                        break;

                    case enumTipoItemTrilha.Discursiva:
                        pnlArtigoOnline.Visible = true;
                        break;

                    case enumTipoItemTrilha.Atividade:
                        divQuestionario.Visible = true;

                        var questionarios = new ManterQuestionario().ObterQuestionariosItemTrilha().ToList();

                        if (itemTrilhaEdicao.Questionario != null &&
                            questionarios.All(x => x.ID != itemTrilhaEdicao.Questionario.ID))
                        {
                            questionarios.Add(itemTrilhaEdicao.Questionario);
                        }

                        WebFormHelper.PreencherLista(questionarios.OrderBy(x => x.Nome).ToList(), ddlQuestionario,
                                                     false, true);

                        if (itemTrilhaEdicao.Questionario != null)
                        {
                            WebFormHelper.SetarValorNaCombo(itemTrilhaEdicao.Questionario.ID.ToString(),
                                                            ddlQuestionario);
                        }
                        break;

                    case enumTipoItemTrilha.Solucoes:
                        divSolucao.Visible        = true;
                        ddlFormaAquisicao.Enabled = false;

                        WebFormHelper.PreencherLista(
                            new ManterSolucaoEducacional().ObterTodosSolucaoEducacional().ToList(), ddlSolucao);

                        if (itemTrilhaEdicao.SolucaoEducacionalAtividade != null)
                        {
                            WebFormHelper.SetarValorNaCombo(
                                itemTrilhaEdicao.SolucaoEducacionalAtividade.ID.ToString(), ddlSolucao);
                        }
                        break;

                    case enumTipoItemTrilha.ConheciGame:
                        var conteudos = new ManterConteudo().ObterTodos().Where(x => x.Ativo).ToList();
                        WebFormHelper.PreencherListaCustomizado(conteudos, ddlConteudo, "ID", "Nome", false, true);

                        var manterTema = new ManterTema();

                        var temas = manterTema.ObterTodos().ToList();
                        WebFormHelper.PreencherListaCustomizado(temas, ddlTema, "ID", "Nome", false, true);

                        var temaSelecionado = manterTema.ObterPorID(itemTrilhaEdicao.ID_TemaConheciGame);

                        if (temaSelecionado != null && temaSelecionado.Conteudo != null)
                        {
                            pnlConheciGame.Visible     = true;
                            pnlTemaConheciGame.Visible = true;

                            WebFormHelper.SetarValorNaCombo(temaSelecionado.Conteudo.ID.ToString(), ddlConteudo);
                            WebFormHelper.SetarValorNaCombo(temaSelecionado.ID.ToString(), ddlTema);

                            txtAcertosTema.Text = itemTrilhaEdicao.QuantidadeAcertosTema.ToString();
                        }

                        break;

                    default:
                        throw new ArgumentOutOfRangeException();
                    }

                    ddlTipo.Enabled = !itemTrilhaEdicao.ListaItemTrilhaParticipacao.Any();
                }

                // Trilha Nível
                WebFormHelper.PreencherLista(itemTrilhaEdicao.Missao.PontoSebrae.TrilhaNivel.Trilha.ListaTrilhaNivel, ddlTrilhaNivel);
                WebFormHelper.SetarValorNaCombo(itemTrilhaEdicao.Missao.PontoSebrae.TrilhaNivel.ID.ToString(), ddlTrilhaNivel);

                // Ponto Sebrae
                WebFormHelper.PreencherLista(itemTrilhaEdicao.Missao.PontoSebrae.TrilhaNivel.ListaPontoSebrae, ddlPontoSebrae);
                WebFormHelper.SetarValorNaCombo(itemTrilhaEdicao.Missao.PontoSebrae.ID.ToString(), ddlPontoSebrae);

                // Missão
                WebFormHelper.PreencherLista(itemTrilhaEdicao.Missao.PontoSebrae.ListaMissoes, ddlMissao);
                WebFormHelper.SetarValorNaCombo(itemTrilhaEdicao.Missao.ID.ToString(), ddlMissao);


                if (itemTrilhaEdicao.FormaAquisicao != null && itemTrilhaEdicao.FormaAquisicao.ID > 0)
                {
                    WebFormHelper.SetarValorNaCombo(itemTrilhaEdicao.FormaAquisicao.ID.ToString(), ddlFormaAquisicao);
                }

                if (_itemTrilhaEdicao.Ativo.HasValue)
                {
                    WebFormHelper.SetarValorNaCombo(itemTrilhaEdicao.Ativo.Value ? "S" : "N", ddlStatus);
                }

                txtCargaHoraria.Text = itemTrilhaEdicao.CargaHoraria > 0 ? itemTrilhaEdicao.CargaHoraria.ToString() : string.Empty;

                txtNome.Text   = itemTrilhaEdicao.Nome;
                txtMoedas.Text = itemTrilhaEdicao.Moedas.ToString();

                txtOrientacoes.Text             = _itemTrilhaEdicao.Local;
                txtLinkAcesso.Text              = _itemTrilhaEdicao.LinkConteudo;
                txtReferenciaBibliografica.Text = _itemTrilhaEdicao.ReferenciaBibliografica;

                //Arquivo de Envio
                if (_itemTrilhaEdicao.FileServer != null &&
                    !string.IsNullOrWhiteSpace(_itemTrilhaEdicao.FileServer.NomeDoArquivoOriginal))
                {
                    lkbArquivo.Text = string.Concat("Abrir arquivo ", _itemTrilhaEdicao.FileServer.NomeDoArquivoOriginal);
                }
            }
        }
Example #6
0
        public DTOConsultaDisponibilidadeMatriculaNivelTrilha ConsultaDisponibilidadeMatriculaNivelTrilha(AuthenticationRequest autenticacao, int idNivelTrilha)
        {
            var retorno = new DTOConsultaDisponibilidadeMatriculaNivelTrilha();

            Usuario usuario = new BMUsuario().ObterPorCPF(autenticacao.Login);

            usuarioTrilhaBM = new BMUsuarioTrilha();
            TrilhaNivel nivelTrilha = new BMTrilhaNivel().ObterPorID(idNivelTrilha);

            if (nivelTrilha != null)
            {
                if (ExisteNiveltrilhaPendente(nivelTrilha, usuario))
                {
                    retorno.CodigoDisponibilidade = (int)enumDisponibilidadeSolucaoEducacional.PossuiPreReqPrograma;
                    retorno.TextoDisponibilidade  = nivelTrilha.PreRequisito != null?string.Format("Nível da Trilha bloqueado. Você deve realizar o nível: {0}", nivelTrilha.PreRequisito.Nome) :
                                                        "Nível da Trilha bloqueado.";

                    return(retorno);
                }
            }

            // Verifica se o usuário está inscrito na trilha
            UsuarioTrilha usuarioTrilha = new UsuarioTrilha();

            usuarioTrilha.Usuario     = usuario;
            usuarioTrilha.TrilhaNivel = nivelTrilha;

            var usuariosTrilha = usuarioTrilhaBM.ObterPorFiltro(usuarioTrilha);

            if (usuariosTrilha.Any())
            {
                // Caso já tenha alguma matrícula ativa retorna o erro
                if (usuariosTrilha.Any(x => x.StatusMatricula == enumStatusMatricula.Inscrito))
                {
                    retorno.CodigoDisponibilidade = (int)enumDisponibilidadeSolucaoEducacional.Matriculado;
                    retorno.TextoDisponibilidade  = "O aluno já está matriculado nesse Nível da Trilha";
                }
                // Status simples pois atualmente os outros status de aprovação não são utilizados em trilhas
                else if (usuariosTrilha.Any(x => x.StatusMatricula == enumStatusMatricula.Aprovado))
                {
                    retorno.CodigoDisponibilidade = (int)enumDisponibilidadeSolucaoEducacional.Cursado;
                    retorno.TextoDisponibilidade  = "O aluno já realizou esse nível da trilha";
                }
            }

            // Se não foram encontrados problemas libera a matricula
            if (retorno.CodigoDisponibilidade == 0)
            {
                retorno.CodigoDisponibilidade = (int)enumDisponibilidadeSolucaoEducacional.EfetuarMatricula;
                retorno.TextoDisponibilidade  = "";
            }

            // Somente pega o Termo se puder fazer a matrícula
            if (retorno.CodigoDisponibilidade == (int)enumDisponibilidadeSolucaoEducacional.EfetuarMatricula)
            {
                // Pegando o termo de aceite do curso
                TrilhaNivel trilhaNivel = new BMTrilhaNivel().ObterPorID(idNivelTrilha);

                if (trilhaNivel != null)
                {
                    retorno.TermoDeAceite = trilhaNivel.TextoTermoAceite;
                }
            }

            return(retorno);
        }