public ManterTrilhaNivel() { _bmTrilhaNivel = new BMTrilhaNivel(); _bmPontoSebrae = new BMPontoSebrae(); _bmMissao = new BMMissao(); _bmItemTrilha = new BMItemTrilha(); }
public IList <TrilhaNivel> ObterTrilhaNivelPorTrilha(int pIdTrilha) { using (BMTrilhaNivel trilhaNivelBM = new BMTrilhaNivel()) { using (BMTrilha tr = new BMTrilha()) { return(trilhaNivelBM.ObterPorTrilha(tr.ObterPorId(pIdTrilha))); } } }
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); }
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); }
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); } } }
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); }