Example #1
0
        private void AlterarStatusItemTrilhaParticipacao(ItemTrilhaParticipacao _itemTrilhaParticipacao, bool?aprovado)
        {
            var itemTrilhaParticipacao = new BMItemTrilhaParticipacao().ObterPorId(_itemTrilhaParticipacao.ID);

            itemTrilhaParticipacao.Autorizado = aprovado;

            if (aprovado.HasValue)
            {
                itemTrilhaParticipacao.DataPrazoAvaliacao = null;
            }

            // Inclui as moedas da trilha caso o usuário seja aprovado.
            if (itemTrilhaParticipacao.Autorizado != null && itemTrilhaParticipacao.Autorizado.Value &&
                itemTrilhaParticipacao.ItemTrilha.Moedas != null)
            {
                new ManterUsuarioTrilhaMoedas().Incluir(itemTrilhaParticipacao.UsuarioTrilha, itemTrilhaParticipacao.ItemTrilha, null, 0, (int)itemTrilhaParticipacao.ItemTrilha.Moedas);
            }

            var bmItemTrilhaParticipacao = new BMItemTrilhaParticipacao();

            bmItemTrilhaParticipacao.LimparSessao();
            bmItemTrilhaParticipacao.Salvar(itemTrilhaParticipacao);

            new ManterItemTrilhaParticipacao().GerarNotificacaoItemTrilha(itemTrilhaParticipacao);
        }
Example #2
0
        public void Salvar(ItemTrilhaParticipacao pItemTrilhaParticipacao)
        {
            ValidarItemTrilhaParticipacaoInformado(pItemTrilhaParticipacao);

            pItemTrilhaParticipacao.DataEnvio = DateTime.Now;
            repositorio.Salvar(pItemTrilhaParticipacao);
        }
Example #3
0
        public List <ItemTrilhaParticipacao> ObterItemTrilhaParticipacaoPorFiltro(ItemTrilhaParticipacao pItem)
        {
            IList <ItemTrilhaParticipacao> ListaItemParticipacao = null;
            var query = repositorio.session.Query <ItemTrilhaParticipacao>();

            if (pItem != null)
            {
                if (pItem.ID != 0)
                {
                    query = query.Where(x => x.ID == pItem.ID);
                }

                if (pItem.ItemTrilha != null)
                {
                    query = query.Where(x => x.ItemTrilha == pItem.ItemTrilha);
                }
                if (pItem.TextoParticipacao != null)
                {
                    query = query.Where(x => x.TextoParticipacao == pItem.TextoParticipacao);
                }

                if (pItem.UsuarioTrilha != null)
                {
                    query = query.Where(x => x.UsuarioTrilha == pItem.UsuarioTrilha);
                }
            }
            query = query.Fetch(x => x.UsuarioTrilha).ThenFetch(x => x.Usuario);

            ListaItemParticipacao = query.AsParallel().ToList <ItemTrilhaParticipacao>().ToList();

            return(ListaItemParticipacao.ToList());
        }
Example #4
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.Orientacao        = string.IsNullOrWhiteSpace(txtOrientacao.Text) ? null : txtOrientacao.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);
                    }

                    MontarPainelSe(_ItemTrilhaParticipacao.ID);
                    WebFormHelper.ExibirMensagem(enumTipoMensagem.Sucesso, "Dados alterados com sucesso");
                }
                catch
                {
                    WebFormHelper.ExibirMensagem(enumTipoMensagem.Erro, "Erro ao atualizar a participação do usuário");
                }
            }
        }
Example #5
0
        protected void gvHistoricoParticipacaoModal_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType.Equals(DataControlRowType.DataRow))
            {
                HyperLink hplnkCaminhoArquivo = (HyperLink)e.Row.FindControl("hplnkCaminhoArquivo");

                if (hplnkCaminhoArquivo != null)
                {
                    try
                    {
                        ItemTrilhaParticipacao registro = (ItemTrilhaParticipacao)e.Row.DataItem;

                        if (registro != null && registro.FileServer != null)
                        {
                            string caminhoArquivoAshx = string.Format(@"/ExibirFileServer.ashx?Identificador={0}", registro.FileServer.NomeDoArquivoNoServidor);
                            string urlCompleta        = HttpContext.Current.Request.Url.ToString();
                            //urlCompleta = urlCompleta.Replace(HttpContext.Current.Request.RawUrl, string.Concat("/", caminhoArquivoAshx));

                            hplnkCaminhoArquivo.Text        = "Anexo";
                            hplnkCaminhoArquivo.NavigateUrl = caminhoArquivoAshx;
                        }
                        else
                        {
                            hplnkCaminhoArquivo.Visible = false;
                        }
                    }
                    catch
                    {
                        try
                        {
                            TrilhaAtividadeFormativaParticipacao registro = (TrilhaAtividadeFormativaParticipacao)e.Row.DataItem;

                            if (registro != null && registro.FileServer != null)
                            {
                                string caminhoArquivoAshx = string.Format(@"/ExibirFileServer.ashx?Identificador={0}", registro.FileServer.NomeDoArquivoNoServidor);
                                string urlCompleta        = HttpContext.Current.Request.Url.ToString();
                                //urlCompleta = urlCompleta.Replace(HttpContext.Current.Request.RawUrl, string.Concat("/", caminhoArquivoAshx));

                                hplnkCaminhoArquivo.Text        = "Anexo";
                                hplnkCaminhoArquivo.NavigateUrl = caminhoArquivoAshx;
                            }
                            else
                            {
                                hplnkCaminhoArquivo.Visible = false;
                            }
                        }
                        catch
                        {
                            hplnkCaminhoArquivo.Visible = false;
                        }
                    }
                }
            }
        }
Example #6
0
 public void ExcluirParticipacaoItemTrilha(ItemTrilhaParticipacao pItemTrilhaParticipacao)
 {
     try
     {
         itemTrilhaParticipacao.Excluir(pItemTrilhaParticipacao);
     }
     catch (AcademicoException ex)
     {
         throw ex;
     }
 }
Example #7
0
 public void AlterarParticipacaoItemTrilha(ItemTrilhaParticipacao pItemTrilhaParticipacao)
 {
     try
     {
         itemTrilhaParticipacao.Salvar(pItemTrilhaParticipacao);
     }
     catch (AcademicoException ex)
     {
         throw ex;
     }
 }
Example #8
0
        public ItemTrilhaParticipacao ObterUltimaParticipacaoMonitor(ItemTrilhaParticipacao item)
        {
            var query = repositorio.session.Query <ItemTrilhaParticipacao>();

            query =
                query.Where(
                    x =>
                    x.UsuarioTrilha == item.UsuarioTrilha && x.ItemTrilha.ID == item.ItemTrilha.ID &&
                    x.TipoParticipacao == enumTipoParticipacaoTrilha.InteracaoMonitor && x.DataAlteracao.HasValue)
                .OrderByDescending(x => x.DataAlteracao);

            return(query.FirstOrDefault());
        }
Example #9
0
        private void ValidarParticipacaoItemTrilhaInformada(ItemTrilhaParticipacao pItemTrilhaParticipacao)
        {
            // Validando se a instância da item trilha participacao está nula.
            this.ValidarInstancia(pItemTrilhaParticipacao);

            if (pItemTrilhaParticipacao.UsuarioTrilha == null)
            {
                throw new AcademicoException("Usuário da Trilha não foi Informado. Campo Obrigatório");
            }

            if (pItemTrilhaParticipacao.ItemTrilha == null)
            {
                throw new AcademicoException("O Item da Trilha não foi informado. Campo Obrigatório");
            }
        }
Example #10
0
        /// <summary>
        /// Validação das informações de um ItemTrilha Participacao
        /// </summary>
        /// <param name="pItemTrilhaParticipacao"></param>
        public void ValidarItemTrilhaParticipacaoInformado(ItemTrilhaParticipacao pItemTrilhaParticipacao)
        {
            ValidarInstancia(pItemTrilhaParticipacao);

            //Usuário Trilha
            if (pItemTrilhaParticipacao.UsuarioTrilha == null)
            {
                throw new AcademicoException("Usuário. Campo Obrigatório");
            }

            //Item Trilha
            if (pItemTrilhaParticipacao.ItemTrilha == null)
            {
                throw new AcademicoException("Item Trilha. Campo Obrigatório");
            }
        }
        public void IncluirPrimeiraParticipacao(ItemTrilhaParticipacao itemTrilhaParticipacao)
        {
            // Verifica se o usuário já tem alguma participação no tópico temático
            if (itemTrilhaParticipacao.ItemTrilha.Missao.PontoSebrae.ListaPontoSebraeParticipacao.Any(
                    x => x.UsuarioTrilha.ID == itemTrilhaParticipacao.UsuarioTrilha.ID))
            {
                return;
            }

            // Caso não tenha cria a primeira participação do usuário
            var participacao = new PontoSebraeParticipacao
            {
                PrimeiraParticipacao = itemTrilhaParticipacao.DataEnvio,
                PontoSebrae          = itemTrilhaParticipacao.ItemTrilha.Missao.PontoSebrae,
                UsuarioTrilha        = itemTrilhaParticipacao.UsuarioTrilha
            };

            new ManterTrilhaTopicoTematicoParticipacao().Salvar(participacao);
        }
Example #12
0
        public dynamic ObterAcessoJogo(int solucaoId, UsuarioTrilha matricula)
        {
            var solucaoSebrae = new ManterItemTrilha().ObterItemTrilhaPorID(solucaoId);

            if (solucaoSebrae == null)
            {
                throw new ResponseException(enumResponseStatusCode.SolucaoSebraeNaoEncontrada);
            }

            var ultimaParticipacao =
                solucaoSebrae.ListaItemTrilhaParticipacao.LastOrDefault(
                    x => x.UsuarioTrilha.ID == matricula.ID && x.Autorizado == null);

            // Criar participação sem autorização, se não existir.
            if (ultimaParticipacao == null)
            {
                // Criar uma participação que servirá de "Dummy" para relacionar o aluno com a aprovação do jogo.
                var participacao = new ItemTrilhaParticipacao
                {
                    UsuarioTrilha    = matricula,
                    ItemTrilha       = solucaoSebrae,
                    DataEnvio        = DateTime.Now,
                    TipoParticipacao = enumTipoParticipacaoTrilha.Jogo,
                    Auditoria        = new Auditoria(matricula.Usuario.CPF),
                    FileServer       = null
                };

                // Criar participação.
                new BP.ManterItemTrilhaParticipacao().Salvar(participacao);
            }

            return(new
            {
                LinkJogo = ConsultarLinkJogo(solucaoSebrae, matricula)
            });
        }
Example #13
0
 public static void Salvar(ItemTrilhaParticipacao itemTrilhaParticipacao)
 {
     new BMItemTrilhaParticipacao().Salvar(itemTrilhaParticipacao);
 }
Example #14
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
            });
        }
Example #15
0
 public void InformarParticipacaoLoja(ItemTrilhaParticipacao itemTrilhaParticipacao)
 {
     new ManterTrilhaTopicoTematicoParticipacao().IncluirPrimeiraParticipacao(itemTrilhaParticipacao);
 }
Example #16
0
 public void Salvar(ItemTrilhaParticipacao pItemTrilhaParticipacao)
 {
     ValidarParticipacaoItemTrilhaInformada(pItemTrilhaParticipacao);
     repositorio.Salvar(pItemTrilhaParticipacao);
 }
Example #17
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");
                }
            }
        }
Example #18
0
 public void Excluir(ItemTrilhaParticipacao pItemTrilhaParticipacao)
 {
     this.ValidarInstancia(pItemTrilhaParticipacao);
     repositorio.Excluir(pItemTrilhaParticipacao);
 }
Example #19
0
 public void SomenteSalvar(ItemTrilhaParticipacao itemTrilhaParticipacao)
 {
     repositorio.Salvar(itemTrilhaParticipacao);
 }