コード例 #1
0
        private void EnviarTrilhas(ManterTrilha manterTr,
                                   BMConfiguracaoSistema bmConfiguracaoSistema, BMLogSincronia bmLogSincronia, Usuario usuarioLogado,
                                   bool somenteNaoSincronizados)
        {
            var trilhas = manterTr.ObterTodasTrilhas();

            foreach (var trilha in trilhas)
            {
                try
                {
                    if (somenteNaoSincronizados && trilha.IdNodePortal.HasValue)
                    {
                        continue;
                    }

                    trilha.IdNodePortal = null;

                    manterTr.AtualizarNodeIdDrupal(trilha, manterTr,
                                                   bmConfiguracaoSistema, bmLogSincronia, usuarioLogado);
                }
                catch (Exception)
                {
                    // ignored;
                }
            }
        }
コード例 #2
0
        protected void btnPesquisar_Click(object sender, EventArgs e)
        {
            if (Page.IsValid)
            {
                try
                {
                    var trilha = ObterObjetoTrilha();

                    _manterTrilha = new ManterTrilha();

                    var listaTrilha = _manterTrilha.ObterTrilhaPorFiltro(trilha);

                    WebFormHelper.PreencherGrid(listaTrilha, this.dgvTrilha);

                    if (listaTrilha != null && listaTrilha.Count > 0)
                    {
                        WebFormHelper.PreencherGrid(listaTrilha, this.dgvTrilha);
                        pnlTrilha.Visible = true;
                    }
                    else
                    {
                        pnlTrilha.Visible = false;
                        WebFormHelper.ExibirMensagem(enumTipoMensagem.Alerta, "Nenhuma Informação Encontrada");
                    }
                }
                catch (AcademicoException ex)
                {
                    WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, ex.Message);
                }
            }
        }
コード例 #3
0
        private DTOMensagemGuia VerificarMoedasProvaFinal(UsuarioTrilha matricula)
        {
            try
            {
                var trilha = new ManterTrilha().ObterTrilhaPorId(matricula.TrilhaNivel.Trilha.ID);

                var momento = enumMomento.PossuirMoedasProvaFinal;

                // Refresh básico da matrícula. Foi mal, mas estamos com pressa.
                matricula = new ManterUsuarioTrilha().ObterPorId(matricula.ID);

                var moedas = new ManterUsuarioTrilhaMoedas().Obter(matricula, enumTipoMoeda.Ouro);

                var minimoMoedas = matricula.TrilhaNivel.QuantidadeMoedasProvaFinal;

                var jaVisualizou =
                    new ManterUsuarioTrilhaMensagemGuia().ObterTodos()
                    .Any(x => x.UsuarioTrilha.ID == matricula.ID && x.MensagemGuia.ID == momento);

                if (minimoMoedas > 0 && moedas >= minimoMoedas && !jaVisualizou)
                {
                    var mensagem = new ManterMensagemGuia().ObterPorId(momento);

                    var visualizacao = RegistrarVisualizacao(matricula, mensagem);

                    return(new DTOMensagemGuia(visualizacao.ID, mensagem.ObterTexto(trilha, matricula)));
                }

                return(null);
            }
            catch (Exception)
            {
                return(null);
            }
        }
コード例 #4
0
        private void IniciarThreadGeral()
        {
            var manterSe              = new ManterSolucaoEducacional();
            var manterOferta          = new ManterOferta();
            var manterPr              = new ManterPrograma();
            var manterCp              = new ManterCapacitacao();
            var manterTr              = new ManterTrilha();
            var bmConfiguracaoSistema = new BMConfiguracaoSistema();
            var bmLogSincronia        = new BMLogSincronia();
            var usuarioLogado         = new ManterUsuario().ObterUsuarioLogado();

            var somenteNaoSincronizados = ckbSomenteNaoSincronizados.Checked;


            var thread = new Thread(() =>
            {
                EnviarSolucoes(manterSe, bmConfiguracaoSistema, bmLogSincronia, usuarioLogado, somenteNaoSincronizados);
                EnviarOfertas(manterOferta, bmConfiguracaoSistema, bmLogSincronia, usuarioLogado, somenteNaoSincronizados);
                EnviarProgramasCapacitacoes(manterPr, manterCp, bmConfiguracaoSistema, bmLogSincronia, usuarioLogado, somenteNaoSincronizados);
                EnviarTrilhas(manterTr, bmConfiguracaoSistema, bmLogSincronia, usuarioLogado, somenteNaoSincronizados);
            })
            {
                IsBackground = true,
                Name         = Guid.NewGuid().ToString()
            };

            thread.Start();
        }
コード例 #5
0
        private List <DTOMensagemGuia> VerificarPrimeiroAcesso(UsuarioTrilha matricula, enumMomento momento,
                                                               PontoSebrae pontoSebrae = null)
        {
            try
            {
                var mensagens = new List <DTOMensagemGuia>();

                // Refresh básico da matrícula. Foi mal, mas estamos com pressa.
                var trilha = new ManterTrilha().ObterTrilhaPorId(matricula.TrilhaNivel.Trilha.ID);

                if (matricula.ListaVisualizacoesMensagemGuia.All(x => x.MensagemGuia.ID != momento))
                {
                    var mensagem = new ManterMensagemGuia().ObterPorId(momento);

                    var visualizacao = RegistrarVisualizacao(matricula, mensagem);

                    // Caso tenha um tutorial vinculado
                    if (mensagem.Tipo == enumTipoMensagemGuia.Tutorial)
                    {
                        mensagens.Add(new DTOMensagemGuia(visualizacao.ID, ObterTutoriaisMensagemGuia(mensagem.Tutoriais)));
                        return(mensagens);
                    }

                    mensagens.Add(new DTOMensagemGuia(visualizacao.ID, mensagem.ObterTexto(trilha, matricula, pontoSebrae: pontoSebrae)));

                    return(mensagens);
                }

                return(null);
            }
            catch
            {
                return(null);
            }
        }
コード例 #6
0
        private DTOMensagemGuia VerificarPrimeiraConclusaoMissao(UsuarioTrilha matricula, TrilhaNivel nivel)
        {
            // Refresh básico dos objetos. Foi mal, mas estamos com pressa.
            matricula = new ManterUsuarioTrilha().ObterPorId(matricula.ID);

            nivel = new ManterTrilhaNivel().ObterTrilhaNivelPorID(nivel.ID);

            var trilha = new ManterTrilha().ObterTrilhaPorId(matricula.TrilhaNivel.Trilha.ID);

            var momento = enumMomento.PrimeiraConclusaoMissao;

            if (matricula.ListaVisualizacoesMensagemGuia.All(x => x.MensagemGuia.ID != momento))
            {
                var primeiraConclusao =
                    nivel.ObterMissoes()
                    .FirstOrDefault(
                        m =>
                        m.UsuarioConcluiu(matricula)
                        );

                if (primeiraConclusao == null)
                {
                    return(null);
                }

                var mensagem = new ManterMensagemGuia().ObterPorId(momento);

                var visualizacao = RegistrarVisualizacao(matricula, mensagem, missao: primeiraConclusao);

                return(new DTOMensagemGuia(visualizacao.ID, mensagem.ObterTexto(trilha, matricula, missao: primeiraConclusao)));
            }

            return(null);
        }
コード例 #7
0
        private void PreencherComboTrilhas()
        {
            ManterTrilha   manterTrilha = new ManterTrilha();
            IList <Trilha> ListaTrilhas = manterTrilha.ObterTodasTrilhas();

            WebFormHelper.PreencherLista(ListaTrilhas, this.ddlTrilha, false, true);
        }
コード例 #8
0
        private DTOMensagemGuia VerificarHistoricoLider(UsuarioTrilha matricula, PontoSebrae pontoSebrae)
        {
            var manterLogLider = new ManterLogLider();

            var trilha = new ManterTrilha().ObterTrilhaPorId(matricula.TrilhaNivel.Trilha.ID);

            // Só interessa obter os dois últimos logs.
            var ultimosLogs =
                manterLogLider.ObterPorAlunoPontoSebrae(matricula, pontoSebrae)
                .Where(x => x.PontoSebrae.ID == pontoSebrae.ID)
                .OrderByDescending(x => x.ID)
                .Take(2)
                .ToList();

            // Só interessa se a quantidade de logs for maior que 1. Se houver somente 1 log, não é necessário exibir nenhuma msg.
            if (ultimosLogs.Count() > 1)
            {
                var ultimoLog    = ultimosLogs[0];
                var penultimoLog = ultimosLogs[1];

                // Explicando a lógica complicada abaixo:
                // Se não havia líder no último acesso e agora tem, exibe a msg do primeiro líder.
                // Caso existem líderes nos dois últimos logs, mas sejam líderes diferentes, exibe a msg.
                // Se nenhuma condição for satisfeita, retorna null e escapa da mensagem.
                var momento = penultimoLog.Lider == null && ultimoLog.Lider != null
                    ? enumMomento.PrimeiroLiderLojaUltimoAcesso
                    : (penultimoLog.Lider != null && ultimoLog.Lider != null &&
                       penultimoLog.Lider.ID != ultimoLog.Lider.ID
                        ? (enumMomento?)enumMomento.AlteracaoLiderLojaUltimoAcesso
                        : null);

                // Ragequit.
                if (momento == null)
                {
                    return(null);
                }

                var mensagem = new ManterMensagemGuia().ObterPorId(momento.Value);

                // Verificar se a última visualização da mensagem foi para o líder atual.
                // Só faz sentido ser executado caso o momento seja AlteracaoLiderLojaUltimoAcesso
                if (momento.Value == enumMomento.AlteracaoLiderLojaUltimoAcesso &&
                    mensagem.ListaUsuarioTrilhaMensagemGuia.LastOrDefault(
                        x =>
                        x.UsuarioTrilha.ID == matricula.ID &&
                        x.LogLider != null &&
                        x.LogLider.Lider.ID == penultimoLog.Lider.ID) != null)
                {
                    return(null);
                }

                var visualizacao = RegistrarVisualizacao(matricula, mensagem, ultimoLog);

                return(new DTOMensagemGuia(visualizacao.ID,
                                           mensagem.ObterTexto(trilha, matricula, ultimoLog, pontoSebrae: pontoSebrae)));
            }

            return(null);
        }
コード例 #9
0
        private void PreencherComboTrilhas()
        {
            var manterTrilha = new ManterTrilha();

            var listaTrilhas = manterTrilha.ObterTodasTrilhas();

            WebFormHelper.PreencherLista(listaTrilhas, ddlTrilha, false, true);
        }
コード例 #10
0
        private DTOMensagemGuia VerificarConclusaoMetadeSolucoesLoja(UsuarioTrilha matricula, PontoSebrae pontoSebrae)
        {
            try
            {
                var trilha = new ManterTrilha().ObterTrilhaPorId(matricula.TrilhaNivel.Trilha.ID);

                // Refresh básico da loja. Foi mal, mas estamos com pressa.
                pontoSebrae = new ManterPontoSebrae().ObterPorId(pontoSebrae.ID);

                var momento = enumMomento.ConcluirMetadeSolucoesLoja;

                // Refresh básico da matrícula. Foi mal, mas estamos com pressa.
                matricula = new ManterUsuarioTrilha().ObterPorId(matricula.ID);

                var solucoesSebrae = pontoSebrae.ObterItensTrilha();

                if (!new ManterUsuarioTrilhaMensagemGuia().ObterTodos()
                    .Any(
                        x =>
                        x.UsuarioTrilha.ID == matricula.ID &&
                        x.ItemTrilha.Missao.PontoSebrae.ID == pontoSebrae.ID && x.MensagemGuia.ID == momento))
                {
                    var concluidos =
                        solucoesSebrae
                        .Count(
                            x =>
                            x.Usuario == null && x.Missao.PontoSebrae.TrilhaNivel.ID == matricula.TrilhaNivel.ID && x.PodeExibir() &&
                            x.ObterStatusParticipacoesItemTrilha(matricula) == enumStatusParticipacaoItemTrilha.Aprovado && x.Ativo.Value);

                    if (concluidos > 0)
                    {
                        var mensagem = new ManterMensagemGuia().ObterPorId(momento);

                        var ids = solucoesSebrae.Select(x => new { x.ID }).Select(x => x.ID).ToList();

                        var solucaoSebraeMetade =
                            solucoesSebrae
                            .FirstOrDefault(x => ids.IndexOf(x.ID) >= concluidos / 2);

                        var visualizacao = RegistrarVisualizacao(matricula, mensagem, null, solucaoSebraeMetade);

                        return(new DTOMensagemGuia(visualizacao.ID,
                                                   mensagem.ObterTexto(trilha, matricula, solucaoSebrae: solucaoSebraeMetade, pontoSebrae: pontoSebrae)));
                    }
                }

                return(null);
            }
            catch (Exception)
            {
                return(null);
            }
        }
コード例 #11
0
        protected void txtTrilha_TextChanged(object sender, EventArgs e)
        {
            int idTrilha;

            if (int.TryParse(txtTrilha.Text, out idTrilha))
            {
                ExibirEdicao(true);
                var trilha = new ManterTrilha().ObterTrilhaPorId(idTrilha);
                PreencherComboOrdem(trilha);
                PreencherPermissoes(trilha);
            }
            else
            {
                ExibirEdicao(false);
            }
        }
コード例 #12
0
ファイル: Sincroniar.aspx.cs プロジェクト: lincoln-alves/sgus
        protected void btnSincronizarTrilha_Click(object sender, EventArgs e)
        {
            var manter = new ManterTrilha();
            var lista  = manter.ObterTodasTrilhas().Where(p => p.ListaAreasTematicas.Any()).ToList();

            foreach (var item in lista)
            {
                try
                {
                    manter.AlterarTrilha(item, ConfigurationManager.AppSettings["portal_url_node_id"]);
                }
                catch
                {
                }
            }
            WebFormHelper.ExibirMensagem(enumTipoMensagem.Sucesso, "Sincronia Realizada: " + lista.Count + " registros");
        }
コード例 #13
0
        protected void cbxTrilha_OnSelectedIndexChanged(object sender, EventArgs e)
        {
            var idTrilha = 0;

            if (!int.TryParse(cbxTrilha.SelectedValue, out idTrilha))
            {
                return;
            }
            var manterTrilha = new ManterTrilha();
            var trilha       = manterTrilha.ObterTrilhaPorId(idTrilha);

            if (trilha == null)
            {
                return;
            }
            WebFormHelper.PreencherLista(trilha.ListaTrilhaNivel.Where(p => p.ListaItemTrilha.Any()).ToList(),
                                         cbxNivelTrilha, true);
        }
コード例 #14
0
        private void IniciarThreadTrilhas()
        {
            var manterTr = new ManterTrilha();
            var bmConfiguracaoSistema = new BMConfiguracaoSistema();
            var bmLogSincronia        = new BMLogSincronia();
            var usuarioLogado         = new ManterUsuario().ObterUsuarioLogado();

            var somenteNaoSincronizados = ckbSomenteNaoSincronizados.Checked;

            var thread =
                new Thread(
                    () =>
                    EnviarTrilhas(manterTr, bmConfiguracaoSistema, bmLogSincronia, usuarioLogado, somenteNaoSincronizados))
            {
                IsBackground = true,
                Name         = Guid.NewGuid().ToString()
            };

            thread.Start();
        }
コード例 #15
0
        private DTOMensagemGuia VerificarPrimeiraTentativaCambio(UsuarioTrilha matricula)
        {
            var trilha = new ManterTrilha().ObterTrilhaPorId(matricula.TrilhaNivel.Trilha.ID);

            var momento = enumMomento.PrimeiraTentativaCambio;

            if (matricula.ListaVisualizacoesMensagemGuia.All(x => x.MensagemGuia.ID != momento))
            {
                MensagemGuia mensagemGuia;

                using (var manterMensagemGuia = new ManterMensagemGuia())
                {
                    mensagemGuia = manterMensagemGuia.ObterPorId(momento);
                }

                var visualizacao = RegistrarVisualizacao(matricula, mensagemGuia);

                return(new DTOMensagemGuia(visualizacao.ID, mensagemGuia.ObterTexto(trilha, matricula)));
            }

            return(null);
        }
コード例 #16
0
        private List <DTOMensagemGuia> VerificarDemaisConclusoesSolucaoSebrae(UsuarioTrilha matricula)
        {
            var retorno = new List <DTOMensagemGuia>();

            if (matricula != null && matricula.ID != 0)
            {
                var trilha = new ManterTrilha().ObterTrilhaPorId(matricula.TrilhaNivel.Trilha.ID);

                // Refresh básico da matrícula. Foi mal, mas estamos com pressa.
                matricula = new ManterUsuarioTrilha().ObterPorId(matricula.ID);

                var momento = enumMomento.DemaisConclusoesSolucaoSebrae;

                var visualizacoes =
                    matricula.ListaVisualizacoesMensagemGuia.Where(
                        x => x.MensagemGuia.ID == momento && x.Visualizacao == null && x.ItemTrilha != null).AsQueryable();

                // Contar a partir da segunda aprovação.
                if (matricula.ListaItemTrilhaParticipacao.Count(x => x.Autorizado == true) > 1 && visualizacoes.Any())
                {
                    foreach (var visualizacao in visualizacoes)
                    {
                        var mensagem = new ManterMensagemGuia().ObterPorId(momento);

                        // Salvar visualização dessa mensagem.
                        visualizacao.Visualizacao = DateTime.Now;
                        new ManterUsuarioTrilhaMensagemGuia().Salvar(visualizacao);

                        // Refresh básico da Solução Sebrae. Foi mal, mas estamos com pressa.
                        var solucaoSebrae = new ManterItemTrilha().ObterItemTrilhaPorID(visualizacao.ItemTrilha.ID);

                        retorno.Add(new DTOMensagemGuia(visualizacao.ID,
                                                        mensagem.ObterTexto(trilha, matricula, solucaoSebrae: solucaoSebrae)));
                    }
                }
            }

            return(retorno);
        }
コード例 #17
0
        private List <DTOMensagemGuia> VerificarDemaisConclusoesMissao(UsuarioTrilha matricula, TrilhaNivel nivel)
        {
            var retorno = new List <DTOMensagemGuia>();

            // Refresh básico da matrícula. Foi mal, mas estamos com pressa.
            matricula = new ManterUsuarioTrilha().ObterPorId(matricula.ID);
            nivel     = new ManterTrilhaNivel().ObterTrilhaNivelPorID(nivel.ID);

            var trilha = new ManterTrilha().ObterTrilhaPorId(matricula.TrilhaNivel.Trilha.ID);

            var idsMissoesConcluidasVisualizadas =
                matricula.ListaVisualizacoesMensagemGuia.Where(x => x.Missao != null).Select(x => x.Missao.ID).ToList();

            var missoes = nivel.ObterMissoes();

            // Obter missões concluídas que o usuário ainda não recebeu a mensagem.
            var missoesConcluidas =
                missoes.Where(
                    x =>
                    !idsMissoesConcluidasVisualizadas.Contains(x.ID))
                .ToList()
                .Where(x => x.UsuarioConcluiu(matricula));

            foreach (var missao in missoesConcluidas)
            {
                var mensagem = new ManterMensagemGuia().ObterPorId(enumMomento.DemaisConclusoesMissao);

                var visualizacao = RegistrarVisualizacao(matricula, mensagem, missao: missao);

                // Salvar visualização dessa mensagem.
                new ManterUsuarioTrilhaMensagemGuia().Salvar(visualizacao);

                retorno.Add(new DTOMensagemGuia(visualizacao.ID, mensagem.ObterTexto(trilha, matricula, missao: missao)));
            }

            return(retorno);
        }
コード例 #18
0
        private DTOMensagemGuia VerificarEvolucaoPin(UsuarioTrilha matricula)
        {
            try
            {
                var trilha = new ManterTrilha().ObterTrilhaPorId(matricula.TrilhaNivel.Trilha.ID);

                var manterMatricula = new ManterUsuarioTrilha();
                var momento         = enumMomento.EvoluirPin;

                // Refresh básico da matrícula. Foi mal, mas estamos com pressa.
                matricula = manterMatricula.ObterPorId(matricula.ID);

                var moedasOuro  = new ManterUsuarioTrilhaMoedas().Obter(matricula, enumTipoMoeda.Ouro);
                var moedasNivel = new ManterTrilhaNivel().ObterTotalMoedasSolucoesSebrae(matricula.TrilhaNivel.ID);

                var tipoTrofeu = matricula.ObterTipoTrofeu(moedasOuro, moedasNivel);

                if (tipoTrofeu > matricula.TipoTrofeu && tipoTrofeu != enumTipoTrofeu.Bronze)
                {
                    matricula.TipoTrofeu = tipoTrofeu;
                    manterMatricula.Salvar(matricula);

                    var mensagem = new ManterMensagemGuia().ObterPorId(momento);

                    var visualizacao = RegistrarVisualizacao(matricula, mensagem);

                    return(new DTOMensagemGuia(visualizacao.ID,
                                               mensagem.ObterTexto(trilha, matricula, corPin: tipoTrofeu.ToString())));
                }

                return(null);
            }
            catch (Exception)
            {
                return(null);
            }
        }
コード例 #19
0
        private DTOMensagemGuia VerificarPrimeiraConclusaoSolucaoSebrae(UsuarioTrilha matricula)
        {
            if (matricula != null && matricula.ID != 0)
            {
                // Refresh básico da matrícula. Foi mal, mas estamos com pressa.
                matricula = new ManterUsuarioTrilha().ObterPorId(matricula.ID);

                var trilha = new ManterTrilha().ObterTrilhaPorId(matricula.TrilhaNivel.Trilha.ID);

                var momento = enumMomento.PrimeiraConclusaoSolucaoSebrae;

                if (matricula.ListaVisualizacoesMensagemGuia.All(x => x.MensagemGuia.ID != momento))
                {
                    var primeiraConclusao =
                        matricula.ListaItemTrilhaParticipacao.OrderBy(x => x.DataEnvio)
                        .FirstOrDefault(x => x.Autorizado == true);

                    if (primeiraConclusao == null)
                    {
                        return(null);
                    }

                    var mensagem = new ManterMensagemGuia().ObterPorId(momento);

                    var visualizacao = RegistrarVisualizacao(matricula, mensagem);

                    // Refresh básico da Solução Sebrae. Foi mal, mas estamos com pressa.
                    var solucaoSebrae = new ManterItemTrilha().ObterItemTrilhaPorID(primeiraConclusao.ItemTrilha.ID);

                    return(new DTOMensagemGuia(visualizacao.ID, mensagem.ObterTexto(trilha, matricula, solucaoSebrae: solucaoSebrae)));
                }
            }


            return(null);
        }
コード例 #20
0
        protected void dgvTrilha_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName.Equals("excluir"))
            {
                try
                {
                    _manterTrilha = new ManterTrilha();

                    var idTrilha = int.Parse(e.CommandArgument.ToString());

                    _manterTrilha.ExcluirTrilha(idTrilha);
                    WebFormHelper.ExibirMensagem(enumTipoMensagem.Sucesso, "Registro excluído com sucesso!", "ListarTrilha.aspx");
                }
                catch (AcademicoException ex)
                {
                    WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, ex.Message);
                }
            }
            else if (e.CommandName.Equals("editar"))
            {
                var idTrilha = int.Parse(e.CommandArgument.ToString());
                Response.Redirect(string.Format("EdicaoTrilha.aspx?Id={0}&Session={1}", idTrilha.ToString(), WebFormHelper.ObterStringAleatoria()));
            }
        }
コード例 #21
0
        private DTOMensagemGuia VerificarConclusaoTodasSolucoesLoja(UsuarioTrilha matricula, PontoSebrae pontoSebrae)
        {
            try
            {
                var trilha = new ManterTrilha().ObterTrilhaPorId(matricula.TrilhaNivel.Trilha.ID);

                // Refresh básico da loja. Foi mal, mas estamos com pressa.
                pontoSebrae = new ManterPontoSebrae().ObterPorId(pontoSebrae.ID);

                var momento = enumMomento.ConclusoesTodasSolucoesLoja;

                // Refresh básico da matrícula. Foi mal, mas estamos com pressa.
                matricula = new ManterUsuarioTrilha().ObterPorId(matricula.ID);

                if (
                    !new ManterUsuarioTrilhaMensagemGuia().ObterTodos()
                    .Any(
                        x =>
                        x.UsuarioTrilha.ID == matricula.ID &&
                        x.ItemTrilha.Missao.PontoSebrae.ID == pontoSebrae.ID && x.MensagemGuia.ID == momento))
                {
                    var total =
                        pontoSebrae.ObterItensTrilha()
                        .Count(
                            x =>
                            x.Usuario == null && x.Missao.PontoSebrae.TrilhaNivel.ID == matricula.TrilhaNivel.ID &&
                            x.PodeExibir() && x.Ativo.Value);

                    var concluidos =
                        pontoSebrae.ObterItensTrilha()
                        .Count(
                            x =>
                            x.Usuario == null && x.Missao.PontoSebrae.TrilhaNivel.ID == matricula.TrilhaNivel.ID &&
                            x.PodeExibir() &&
                            x.ObterStatusParticipacoesItemTrilha(matricula) == enumStatusParticipacaoItemTrilha.Aprovado && x.Ativo.Value);

                    if (total > 0 && concluidos == total)
                    {
                        var mensagem = new ManterMensagemGuia().ObterPorId(momento);

                        var ultimaSolucaoSebrae =
                            pontoSebrae.ObterItensTrilha()
                            .LastOrDefault(
                                x =>
                                x.Missao.PontoSebrae.ID == pontoSebrae.ID &&
                                x.ListaItemTrilhaParticipacao.Any() &&
                                x.ListaItemTrilhaParticipacao.FirstOrDefault().UsuarioTrilha.ID == matricula.ID);

                        var visualizacao = RegistrarVisualizacao(matricula, mensagem, null, ultimaSolucaoSebrae);

                        return(new DTOMensagemGuia(visualizacao.ID,
                                                   mensagem.ObterTexto(trilha, matricula, solucaoSebrae: ultimaSolucaoSebrae, pontoSebrae: pontoSebrae)));
                    }
                }

                return(null);
            }
            catch
            {
                return(null);
            }
        }
コード例 #22
0
        private void PreencherTrilhas()
        {
            var trilhas = new ManterTrilha().ObterTodasTrilhas().OrderBy(x => x.Nome);

            ViewState["_trilha"] = Helpers.Util.ObterListaAutocomplete(trilhas.AsQueryable <classes.Trilha>());
        }
コード例 #23
0
        public IList <Trilha> ObterTrilhasComParticipacao()
        {
            var manterTrilha = new ManterTrilha();

            return(manterTrilha.ObterTodasTrilhasComParticipacao());
        }
コード例 #24
0
        private void PreencherTrilhas()
        {
            var trilhas = new ManterTrilha().ObterTodasTrilhas();

            WebFormHelper.PreencherLista(trilhas, drpTrilhas, true, false);
        }