Exemplo n.º 1
0
        private void PreencherDTOComInformacoesDaMatriculaPrograma(int id_Usuario, List <DTOItemMeusCursos> resultado)
        {
            DTOItemMeusCursos dtoItemMeusCursos = null;

            try
            {
                IList <MatriculaCapacitacao> ListaMatriculaCapacitacao = new BMMatriculaCapacitacao().ObterPorUsuario(id_Usuario).Where(x => x.StatusMatricula.Equals(enumStatusMatricula.Inscrito)).OrderBy(x => x.Capacitacao.Programa.ID).ToList();

                var manterMatCapacitacao = new ManterMatriculaCapacitacaoService();

                int    prevPrograma       = 0;
                int    cont               = 0;
                double totalAprovacoesSol = 0;
                double totalSol           = 0;

                foreach (var itemHistorico in ListaMatriculaCapacitacao)
                {
                    BMCapacitacao bmCapacitacao = new BMCapacitacao();

                    // PROGRAMAS - Mudou o programa cria um novo item pai
                    if (prevPrograma != itemHistorico.Capacitacao.Programa.ID)
                    {
                        totalAprovacoesSol = 0;
                        totalSol           = 0;

                        dtoItemMeusCursos                   = new DTOItemMeusCursos();
                        dtoItemMeusCursos.ID                = itemHistorico.Capacitacao.Programa.ID;
                        dtoItemMeusCursos.NomeSolucao       = itemHistorico.Capacitacao.Programa.Nome;
                        dtoItemMeusCursos.Fornecedor        = Constantes.Sebrae;
                        dtoItemMeusCursos.TextoApresentacao = itemHistorico.Capacitacao.Programa.Apresentacao;
                        dtoItemMeusCursos.DataInicio        = itemHistorico.Capacitacao.DataInicio.ToString("dd/MM/yyyy");
                        dtoItemMeusCursos.DataLimite        = itemHistorico.Capacitacao.DataFim.HasValue ? itemHistorico.Capacitacao.DataFim.Value.ToString("dd/MM/yyyy") : "";
                        dtoItemMeusCursos.Tipo              = Constantes.ProgramaUC;
                        dtoItemMeusCursos.CargaHoraria      = Constantes.NaoDefinido;
                        dtoItemMeusCursos.IdProgramaPortal  = itemHistorico.Capacitacao.Programa.IdNodePortal;
                        dtoItemMeusCursos.LinkAcesso        = "";//!string.IsNullOrEmpty(itemHistorico.Capacitacao.Programa.Acesso) ? itemHistorico.Capacitacao.Programa.Acesso : "";
                    }

                    DTOCapacitacao dtoCapacitacao = manterMatCapacitacao.AprovacoesSolucoesEducacionais(itemHistorico, id_Usuario);

                    dtoItemMeusCursos.CapacitacoesPrograma.Add(dtoCapacitacao);

                    string[] totais = dtoCapacitacao.TextoConclusaoCapacitacao.Split('/');

                    totalAprovacoesSol += float.Parse(totais[0]);
                    totalSol           += float.Parse(totais[1]);

                    //dtoItemMeusCursos.LinkSemAcesso.Add(new DTOLinkSemAcesso { MotivoLinkSemAcesso = string.Format("Este curso será iniciado no dia {0}", exibirData.ToString("dd/MM/yyyy")) });

                    // Se o próximo programa for diferente ou for o último insere no DTO Pai os filhos
                    if (ListaMatriculaCapacitacao.Count - 1 == cont || itemHistorico.Capacitacao.Programa.ID != ListaMatriculaCapacitacao[cont + 1].Capacitacao.Programa.ID)
                    {
                        dtoItemMeusCursos.PorcentagemConlusaoPrograma = (int)(Math.Round(totalAprovacoesSol / totalSol, 2) * 100);
                        dtoItemMeusCursos.TextoConclusaoPrograma      = totalAprovacoesSol + "/" + totalSol;
                        resultado.Add(dtoItemMeusCursos);
                    }

                    // Atualiza a referência ao passado
                    prevPrograma = itemHistorico.Capacitacao.Programa.ID;

                    cont++;
                }
            }
            catch (Exception ex)
            {
                ErroUtil.Instancia.TratarErro(ex);
            }
        }
        private void PreencherDTOComInformacoesDaMatriculaPrograma(int idUsuario, List <DTOItemHistoricoAcademico> resultado)
        {
            var manterMatriculaCapacitacao = new ManterMatriculaCapacitacaoService();
            var listaMatriculaCapacitacao  = manterMatriculaCapacitacao.ObterPorUsuario(idUsuario);

            //UST #1158: Exibir cursos, programas e trilhas com status de inscrito no historico academico. Foir removido .Where(x => x.StatusMatricula != enumStatusMatricula.Inscrito)
            foreach (
                var itemHistorico in
                listaMatriculaCapacitacao)
            {
                var item = new DTOItemHistoricoAcademico
                {
                    NomeSolucao = itemHistorico.Capacitacao.Programa.Nome,
                    Instituicao = Constantes.UCSebrae
                };

                var data = itemHistorico.Capacitacao.DataInicio;
                item.DataInicio = data.ToString("dd/MM/yyyy");
                item.DataFim    = itemHistorico.Capacitacao.DataFim.HasValue
                    ? itemHistorico.Capacitacao.DataFim.Value.ToString("dd/MM/yyyy")
                    : "";

                item.IdMatricula = itemHistorico.ID;
                item.Situacao    = itemHistorico.StatusMatriculaFormatado;
                item.Tipo        = Constantes.ProgramaUC;

                if (itemHistorico.ListaMatriculaTurmaCapacitacao != null &&
                    itemHistorico.ListaMatriculaTurmaCapacitacao.Any())
                {
                    var matriculaTurma = itemHistorico.ListaMatriculaTurmaCapacitacao.FirstOrDefault();
                    if (matriculaTurma == null)
                    {
                        continue;
                    }
                    item.IdTurma = matriculaTurma.TurmaCapacitacao.ID;
                    if (matriculaTurma.TurmaCapacitacao.ListaQuestionarioAssociacao.Any())
                    {
                        var itemQuestionarioAssociacaoPos =
                            matriculaTurma.TurmaCapacitacao.ListaQuestionarioAssociacao.FirstOrDefault(
                                x => x.TipoQuestionarioAssociacao.ID == (int)enumTipoQuestionarioAssociacao.Pos);
                        if (itemQuestionarioAssociacaoPos != null)
                        {
                            if (
                                !(new BMQuestionarioParticipacao().ObterPorUsuario(itemHistorico.Usuario)
                                  .Any(
                                      x =>
                                      x.TipoQuestionarioAssociacao.ID == (int)enumTipoQuestionarioAssociacao.Pos &&
                                      x.TurmaCapacitacao != null &&
                                      x.TurmaCapacitacao.ID == matriculaTurma.TurmaCapacitacao.ID &&
                                      x.DataParticipacao != null)))
                            {
                                item.QuestionarioPosPendente = true;
                            }
                        }
                    }
                }


                item.TemCertificado = (itemHistorico.Capacitacao.Certificado != null && !item.QuestionarioPosPendente);

                item.CargaHoraria = Constantes.NaoDefinido;
                resultado.Add(item);
            }
        }