Exemple #1
0
        private void MontarPainelSeAprovacao(int idItemTrilha)
        {
            LimparObjetosItemTrilha();

            _ItemTrilha = new BMItemTrilha().ObterPorID(idItemTrilha);

            if (_ItemTrilha == null)
            {
                return;
            }
            lblTipoItemTrilha.Text                    = _ItemTrilha.FormaAquisicao.Nome;
            lblTituloItemTrilha.Text                  = _ItemTrilha.Nome;
            lblOjetivoItemTrilha.Text                 = _ItemTrilha.Objetivo.NomeExibicao;
            lblLinkAcessoItemTrilha.Text              = _ItemTrilha.LinkConteudo;
            lblLinkAcessoItemTrilha.NavigateUrl       = _ItemTrilha.LinkConteudo;
            lblReferenciaBibliograficaItemTrilha.Text = _ItemTrilha.ReferenciaBibliografica;
            lblLocalItemTrilha.Text                   = _ItemTrilha.Local;
            txtObservacaoItemTrilha.Text              = _ItemTrilha.Observacao;

            divCargaHoraria.Visible = false;

            if (_ItemTrilha.CargaHoraria > 0)
            {
                divCargaHoraria.Visible = true;
                txtCargHoraria.Text     = _ItemTrilha.CargaHoraria.ToString();
            }
        }
Exemple #2
0
 public ManterTrilhaNivel()
 {
     _bmTrilhaNivel = new BMTrilhaNivel();
     _bmPontoSebrae = new BMPontoSebrae();
     _bmMissao      = new BMMissao();
     _bmItemTrilha  = new BMItemTrilha();
 }
Exemple #3
0
        public IList <DTORelatorioHistoricoAtividadeTopicoTematicoCount> ConsultarHistoricoAtividadeTopicoTematico(IList <DTOAlunoDaTrilha> listaDTOAlunoDaTrilha)
        {
            IList <DTORelatorioHistoricoAtividadeTopicoTematicoCount> listaDTORelatorioHistoricoAtividadeTopicoTematicoCount =
                new List <DTORelatorioHistoricoAtividadeTopicoTematicoCount>();

            DTORelatorioHistoricoAtividadeTopicoTematicoCount dtoRelatorioHistoricoAtividadeTopicoTematicoCount = null;

            using (BMItemTrilha itemBM = new BMItemTrilha())
            {
                using (BMUsuarioTrilha utBM = new BMUsuarioTrilha())
                {
                    foreach (DTOAlunoDaTrilha dtoAlunoDaTrilha in listaDTOAlunoDaTrilha)
                    {
                        dtoRelatorioHistoricoAtividadeTopicoTematicoCount = new DTORelatorioHistoricoAtividadeTopicoTematicoCount()
                        {
                            IDTopicoTematico         = dtoAlunoDaTrilha.IdTopicoTematico,
                            TopicoTomatico           = dtoAlunoDaTrilha.TopicoTematico,
                            TemParticipacaoNaSolucao = dtoAlunoDaTrilha.TemParticipacaoNaSolucao,
                            TemParticipacaoNoTopico  = dtoAlunoDaTrilha.TemParticipacaoNoTopico,
                            IsAutoIndicativa         = dtoAlunoDaTrilha.IsAutoIndicativa,
                            Objetivo = dtoAlunoDaTrilha.Objetivo
                        };

                        listaDTORelatorioHistoricoAtividadeTopicoTematicoCount.Add(dtoRelatorioHistoricoAtividadeTopicoTematicoCount);
                    }


                    listaDTORelatorioHistoricoAtividadeTopicoTematicoCount.Distinct().ToList();
                }
            }

            return(listaDTORelatorioHistoricoAtividadeTopicoTematicoCount);
        }
Exemple #4
0
        public bool UsuarioAprovadoObjetivo(UsuarioTrilha usuarioTrilha, int idObjetivo)
        {
            var lista = new BMItemTrilha().ObterItemTrilhasPorNivelTrilhaObjetivo(idObjetivo, usuarioTrilha.TrilhaNivel.ID);

            // Se tiver soluções obrigatórias verifica se o usuário foi aprovado em todas as soluções obrigatórias
            if (lista.Any(x => x.SolucaoEducacional.ID != 0 && x.SolucaoObrigatoria == true))
            {
                return(lista.Any(x => x.SolucaoEducacional.ID != 0 && x.SolucaoObrigatoria == true &&
                                 x.ListaItemTrilhaParticipacao.All(y => y.UsuarioTrilha.ID == usuarioTrilha.ID && y.TipoParticipacao == enumTipoParticipacaoTrilha.ParticipacaoTrilheiro && y.Autorizado == true)));
            }
            // Do contrário verifica se o usuário realizou alguma solução desse objetivo e foi aprovado
            else
            {
                return(lista.Any(x => x.ListaItemTrilhaParticipacao.Any(y => y.UsuarioTrilha.ID == usuarioTrilha.ID && y.TipoParticipacao == enumTipoParticipacaoTrilha.ParticipacaoTrilheiro && y.Autorizado == true)));
            }
        }
Exemple #5
0
        private void AtualizaCargaHoraria(int idItemTrilha)
        {
            _ItemTrilha = new BMItemTrilha().ObterPorID(idItemTrilha);

            if (!string.IsNullOrWhiteSpace(txtCargHoraria.Text) && _ItemTrilha.CargaHoraria >= 0 && txtCargHoraria.Text != _ItemTrilha.CargaHoraria.ToString())
            {
                int cargaHoraria;

                if (int.TryParse(txtCargHoraria.Text, out cargaHoraria))
                {
                    _ItemTrilha.CargaHoraria = int.Parse(txtCargHoraria.Text);

                    new ManterItemTrilha().AlterarItemTrilha(_ItemTrilha);

                    var manterNotificacao = new ManterNotificacao();

                    var nivel = _ItemTrilha.Missao.PontoSebrae.TrilhaNivel;

                    var link = string.Format("/trilhas/trilha/{0}/nivel/{1}",
                                             nivel.Trilha.ID, nivel.ID);

                    var textoPublicacao = "Carga horária não aprovada.";
                    var usuarioLogado   = new BMUsuario().ObterUsuarioLogado();

                    var notificacaoEnvio = new Sebrae.Academico.Dominio.Classes.NotificacaoEnvio
                    {
                        Texto = textoPublicacao,
                        Link  = link
                    };

                    new ManterNotificacaoEnvio().AlterarNotificacaoEnvio(notificacaoEnvio);

                    manterNotificacao.PublicarNotificacao(link, textoPublicacao, usuarioLogado.ID, notificacaoEnvio);
                }
                else
                {
                    throw new AcademicoException("Carga horária informada é inválida.");
                }
            }
        }
Exemple #6
0
        public IList <ItemTrilha> ObterItemsTrilha(ViewTrilha viewTrilha)
        {
            var query = repositorio.session.Query <ViewUsuarioItemTrilhaParticipacao>();

            //query = query.Fetch(x => x.ItemTrilha);

            if (viewTrilha.TrilhaOrigem != null)
            {
                query = query.Where(x => x.TrilhaOrigem.ID == viewTrilha.TrilhaOrigem.ID);
            }

            if (viewTrilha.TrilhaNivelOrigem != null)
            {
                query = query.Where(x => x.TrilhaNivelOrigem.ID == viewTrilha.TrilhaNivelOrigem.ID);
            }

            if (viewTrilha.TopicoTematico != null)
            {
                query = query.Where(x => x.TopicoTematico.ID == viewTrilha.TopicoTematico.ID);
            }

            if (viewTrilha != null && viewTrilha.UsuarioOrigem != null)
            {
                query = query.Where(x => x.UsuarioOrigem.ID == viewTrilha.UsuarioOrigem.ID);
            }


            IList <ItemTrilha> ListaItemTrilha = new List <ItemTrilha>();

            using (BMItemTrilha itemTrilhaBM = new BMItemTrilha())
            {
                foreach (ViewUsuarioItemTrilhaParticipacao vt in query.ToList())
                {
                    ListaItemTrilha.Add(itemTrilhaBM.ObterPorID(vt.ItemTrilha.ID));
                }
            }

            return(ListaItemTrilha);
        }
Exemple #7
0
        public List <DTOSolucoesObrigatorias> obtemSolucoesJogo(UsuarioTrilha usuarioTrilha, int idObjetivo)
        {
            List <DTOSolucoesObrigatorias> lista = new List <DTOSolucoesObrigatorias>();

            var query = new BMItemTrilha().ObterItemTrilhasPorNivelTrilhaObjetivo(idObjetivo, usuarioTrilha.TrilhaNivel.ID);
            var solucoesObrigatorias = query.Where(x => x.SolucaoEducacional.ID != 0 && x.SolucaoObrigatoria == true).ToList();

            // Caso tenha alguma solução obrigatória retorna essas
            if (solucoesObrigatorias.Count() > 0)
            {
                foreach (var item in solucoesObrigatorias)
                {
                    lista = insereItemParticipacaoJogo(lista, item, usuarioTrilha);
                }
            }
            else
            {
                // Da preferência para Soluções Educacionais, dessa forma funciona caso não tenha soluções educacionais o objetivo
                var item = query.Where(x => x.SolucaoObrigatoria == false).OrderByDescending(x => x.SolucaoEducacional).FirstOrDefault();

                lista = insereItemParticipacaoJogo(lista, item, usuarioTrilha);
            }
            return(lista);
        }
Exemple #8
0
        public dynamic CadastrarItemTrilhaParticipacao(int idUsuarioTrilha, int idItemTrilha, string textoParticipacao, string nomeOriginalArquivo, string imagem, int tipoParticipacao, string cpfAuditoria)
        {
            itemTrilhaParticipacaoBM = new BMItemTrilhaParticipacao();
            fileServerBM             = new BMFileServer();

            var usuarioTrilha = new BMUsuarioTrilha().ObterPorId(idUsuarioTrilha);

            var isParticipacaoTrilheiro = tipoParticipacao == (int)enumTipoParticipacaoTrilha.ParticipacaoTrilheiro;

            if (isParticipacaoTrilheiro && DateTime.Now > usuarioTrilha.DataLimite)
            {
                throw new AcademicoException("O prazo para envio desta atividade já passou!");
            }

            var itemTrilhaParticipacao = new ItemTrilhaParticipacao();
            var itemTrilha             = new BMItemTrilha().ObterPorID(idItemTrilha);

            if (idItemTrilha > 0 && idUsuarioTrilha > 0)
            {
                var listaItemTrilhaParticipacao = itemTrilhaParticipacaoBM.ObterParticipacoesUsuarioTrilha(
                    idItemTrilha, idUsuarioTrilha);

                if (listaItemTrilhaParticipacao.Count > 0)
                {
                    if (
                        listaItemTrilhaParticipacao.Any(
                            x =>
                            x.TipoParticipacao == enumTipoParticipacaoTrilha.ParticipacaoTrilheiro &&
                            x.Autorizado.HasValue && x.Autorizado.Value) && isParticipacaoTrilheiro)
                    {
                        throw new AcademicoException("Sua atividade já está aprovada!");
                    }

                    if (
                        listaItemTrilhaParticipacao.Any(
                            x =>
                            x.TipoParticipacao == enumTipoParticipacaoTrilha.ParticipacaoTrilheiro &&
                            !x.Autorizado.HasValue) && isParticipacaoTrilheiro)
                    {
                        throw new AcademicoException("Sua atividade ainda não foi avaliada!");
                    }
                }

                itemTrilhaParticipacao.ItemTrilha        = itemTrilha;
                itemTrilhaParticipacao.TextoParticipacao = textoParticipacao;
                itemTrilhaParticipacao.DataEnvio         = DateTime.Now;
                itemTrilhaParticipacao.UsuarioTrilha     = usuarioTrilha;
                itemTrilhaParticipacao.Visualizado       = false;
                itemTrilhaParticipacao.TipoParticipacao  =
                    (enumTipoParticipacaoTrilha)
                    Enum.Parse(typeof(enumTipoParticipacaoTrilha), tipoParticipacao.ToString());
                itemTrilhaParticipacao.Auditoria = new Auditoria(cpfAuditoria);
                if (itemTrilha.Missao.PontoSebrae.TrilhaNivel.PrazoMonitorDiasUteis != null)
                {
                    itemTrilhaParticipacao.DataPrazoAvaliacao =
                        DateTime.Now.CalcularPrazo((int)itemTrilha.Missao.PontoSebrae.TrilhaNivel.PrazoMonitorDiasUteis);
                }

                FileServer fileServer;

                if (string.IsNullOrEmpty(nomeOriginalArquivo))
                {
                    fileServer = null;
                }
                else
                {
                    var memoryStream = CommonHelper.ObterMemoryStream(imagem);
                    fileServer = CommonHelper.ObterObjetoFileServer(memoryStream);

                    var caminhoDiretorioUpload =
                        ConfiguracaoSistemaUtil.ObterInformacoes(enumConfiguracaoSistema.RepositorioUpload).Registro;

                    // Escrever o arquivo na pasta.
                    CommonHelper.EnviarArquivoParaRepositorio(caminhoDiretorioUpload, memoryStream, fileServer.NomeDoArquivoNoServidor);

                    //Define o tipo de arquivo (/Quebra a string para obter o tipo do arquivo. Ex: bmp, jpeg, etc...)
                    fileServer.TipoArquivo           = CommonHelper.ObterTipoDoArquivo(imagem);
                    fileServer.MediaServer           = true;
                    fileServer.NomeDoArquivoOriginal = nomeOriginalArquivo;
                    fileServer.Auditoria             = new Auditoria(cpfAuditoria);
                    fileServerBM.Salvar(fileServer);
                }

                itemTrilhaParticipacao.FileServer = fileServer;
                itemTrilhaParticipacaoBM.Salvar(itemTrilhaParticipacao);

                // Verifica se o usuário já tem participação no item trilha
                InformarParticipacaoLoja(itemTrilhaParticipacao);
            }

            var status = itemTrilha.ObterStatusParticipacoesItemTrilha(usuarioTrilha);

            return(new
            {
                Status = status != null ? (int?)status.Value : null
            });
        }
        protected void rptUsuariosTrilha_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            var rptPontosSebraeUsuario      = (Repeater)e.Item.FindControl("rptPontosSebraeUsuario");
            var rptsolucaoesDaTrilhaOnline  = (Repeater)e.Item.FindControl("rptsolucaoesDaTrilhaOnline");
            var rptsolucaoesDoTrilheiro     = (Repeater)e.Item.FindControl("rptsolucaoesDoTrilheiro");
            var rptsolucaoesDesempenhoGeral = (Repeater)e.Item.FindControl("rptSolucaoesDesempenhoGeral");

            // Inception de repeaters.
            // Obter as questões por aqui.
            var usuarioTrilha = (UsuarioTrilha)e.Item.DataItem;

            var dic = new Dictionary <string, object>();

            dic.Add("@ID_Usuariario_Trilha", usuarioTrilha.ID);

            var solucaoesDaTrilha        = new BMItemTrilha().ExecutarProcedure <DTOSolucoesDaTrilha>("SP_solucoes_da_trilha", dic);
            var solucaoesDaTrilhaOnline  = new BMItemTrilha().ExecutarProcedure <DTOCursosOnlineUCSebrae>("SP_cursos_online_ucsebrae", dic);
            var solucaoesDoTrilheiro     = new BMItemTrilha().ExecutarProcedure <DTOSolucoesTrilheiro>("SP_solucoes_do_trilheiro", dic);
            var solucaoesDesempenhoGeral = new BMItemTrilha().ExecutarProcedure <DTOSolucaoesDesempenhoGeral>("SP_solucoes_do_desempenho_geral", dic);


            /* -- Solução da trilha  --*/
            rptPontosSebraeUsuario.DataSource = solucaoesDaTrilha;
            rptPontosSebraeUsuario.DataBind();

            var rptPontosSebraeUsuarioObjetivos = (HtmlTableCell)e.Item.FindControl("rptPontosSebraeUsuarioObjetivos");

            rptPontosSebraeUsuarioObjetivos.InnerText = solucaoesDaTrilha.Count().ToString();

            var rptPontosSebraeUsuarioTotalHoras = (HtmlTableCell)e.Item.FindControl("rptPontosSebraeUsuarioTotalHoras");

            rptPontosSebraeUsuarioTotalHoras.InnerText = solucaoesDaTrilha.Sum(x => x.CargaHoraria).ToString() + "h";

            var rptPontosSebraeUsuarioMoedas = (HtmlTableCell)e.Item.FindControl("rptPontosSebraeUsuarioMoedas");

            rptPontosSebraeUsuarioMoedas.InnerText = solucaoesDaTrilha.Sum(x => x.Moedas).ToString();
            /* -- Solução da trilha  --*/


            /* -- Solução da trilha online --*/
            rptsolucaoesDaTrilhaOnline.DataSource = solucaoesDaTrilhaOnline;
            rptsolucaoesDaTrilhaOnline.DataBind();


            var rptsolucaoesDaTrilhaOnlineObjetivo = (HtmlTableCell)e.Item.FindControl("rptsolucaoesDaTrilhaOnlineObjetivo");

            rptsolucaoesDaTrilhaOnlineObjetivo.InnerText = solucaoesDaTrilhaOnline.Count().ToString();

            var rptsolucaoesDaTrilhaOnlineMoedasProvaFinal = (HtmlTableCell)e.Item.FindControl("rptsolucaoesDaTrilhaOnlineMoedasProvaFinal");

            rptsolucaoesDaTrilhaOnlineMoedasProvaFinal.InnerText = solucaoesDaTrilhaOnline.Sum(x => x.Moedas).ToString();

            var rptsolucaoesDaTrilhaOnlineTotal = (HtmlTableCell)e.Item.FindControl("rptsolucaoesDaTrilhaOnlineTotal");

            rptsolucaoesDaTrilhaOnlineTotal.InnerText = solucaoesDaTrilhaOnline.Sum(x => x.CargaHoraria).ToString();
            /* -- Solução da trilha online --*/


            /* -- Solução do trilheiro --*/
            rptsolucaoesDoTrilheiro.DataSource = solucaoesDoTrilheiro;
            rptsolucaoesDoTrilheiro.DataBind();
            /* -- Solução do trilheiro --*/

            /* --Desempenho geral-- */
            rptsolucaoesDesempenhoGeral.DataSource = solucaoesDesempenhoGeral;
            rptsolucaoesDesempenhoGeral.DataBind();
        }
 /// <summary>
 /// Método Construtor da classe
 /// </summary>
 public ManterItemTrilha()
     : base()
 {
     bmItemTrilha = new BMItemTrilha();
 }