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); } }