Example #1
0
        public void ExcluirTrilhaNivel(int IdTrilhaNivel)
        {
            try
            {
                TrilhaNivel trilhaNivel = null;

                if (IdTrilhaNivel > 0)
                {
                    trilhaNivel = _bmTrilhaNivel.ObterPorID(IdTrilhaNivel);
                }

                _bmTrilhaNivel.Excluir(trilhaNivel);
            }
            catch (AcademicoException ex)
            {
                throw ex;
            }
        }
Example #2
0
        public IList <DTORankingTrilha> ConsultarRankingTrilha(int pIdTrilha, int pIdTrilhaNivel)
        {
            IList <UsuarioTrilha>    lstUt;
            IList <DTORankingTrilha> lstResult = new List <DTORankingTrilha>();

            // Se especificado o id de Nivel pega somente o ranking do nível
            var statusBanidos = new List <enumStatusMatricula>();

            statusBanidos.Add(enumStatusMatricula.CanceladoAdm);
            statusBanidos.Add(enumStatusMatricula.CanceladoAluno);
            statusBanidos.Add(enumStatusMatricula.CanceladoGestor);
            statusBanidos.Add(enumStatusMatricula.Abandono);

            if (pIdTrilhaNivel != 0)
            {
                var trilhaNivelBM = new BMTrilhaNivel();
                var tn            = trilhaNivelBM.ObterPorID(pIdTrilhaNivel);

                // Remover status cancelados e retornar os resultados.
                lstUt = tn.ListaUsuarioTrilha.Where(y => !statusBanidos.Contains(y.StatusMatricula)).OrderByDescending(x => x.QTEstrelas).ToList();

                byte posicaoRank = 1;
                //lstResult = new List<DTORankingTrilha>();
                foreach (var ut in lstUt)
                {
                    lstResult.Add(new DTORankingTrilha()
                    {
                        Posicaoranking              = posicaoRank,
                        IdUsuario                   = ut.ID,
                        EmailUsuario                = ut.Usuario.Email,
                        CPFUsuario                  = ut.Usuario.CPF,
                        EstadoUsuario               = ut.Usuario.Estado,
                        NomeUsuario                 = ut.Usuario.Nome,
                        UF                          = ut.Usuario.UF.Nome,
                        UFSigla                     = ut.Usuario.UF.Sigla,
                        DataInicio                  = ut.DataInicio.ToString("dd/MM/yyyy"),
                        DataFim                     = ut.DataFim.HasValue ? ut.DataFim.Value.ToString("dd/MM/yyyy") : string.Empty,
                        QuantidadeEstrelas          = ut.QTEstrelas == null ? byte.Parse("0") : ut.QTEstrelas.Value,
                        QuantidadeEstrelasPossiveis = ut.QTEstrelasPossiveis == null ? byte.Parse("0") : ut.QTEstrelasPossiveis.Value,
                        StatusMatricula             = ut.StatusMatricula
                    });
                    posicaoRank++;
                }

                // Se somente foi especificado o ID de trilha
            }
            else if (pIdTrilha != 0)
            {
                var rel = new RelatorioUsuarioTrilha();

                var ranking = rel.ConsultarRankingTrilhaUsuario(pIdTrilha).Where(x =>
                                                                                 !statusBanidos.Contains((enumStatusMatricula)x.StatusMatricula)).ToList();

                byte posicaoRank = 1;

                lstResult = new List <DTORankingTrilha>();

                foreach (var ut in ranking)
                {
                    lstResult.Add(new DTORankingTrilha
                    {
                        Posicaoranking              = posicaoRank,
                        IdUsuario                   = ut.ID_Usuario,                                                                // ut.ID
                        EmailUsuario                = ut.Email,                                                                     //ut.Usuario.Email
                        CPFUsuario                  = ut.CPF,                                                                       //ut.Usuario.CPF
                        EstadoUsuario               = ut.Estado,                                                                    // ut.Usuario.Estado
                        NomeUsuario                 = ut.Nome,                                                                      // ut.Usuario.Nome
                        UF                          = ut.UF_nome,                                                                   //ut.Usuario.UF.Nome
                        UFSigla                     = ut.UF_sigla,                                                                  // ut.Usuario.UF.Sigla
                        DataInicio                  = ut.DataInicio.ToString("dd/MM/yyyy"),                                         // ut.DataInicio
                        DataFim                     = ut.DataFim.HasValue ? ut.DataFim.Value.ToString("dd/MM/yyyy") : string.Empty, // ut.DataFim
                        QuantidadeEstrelas          = (byte)ut.QT_Estrelas,                                                         // ut.QTEstrelas
                        QuantidadeEstrelasPossiveis = (byte)ut.QT_EstrelasPossiveis,                                                // ut.QTEstrelasPossiveis
                        StatusMatricula             = (enumStatusMatricula)ut.StatusMatricula,                                      // ut.StatusMatricula
                        Nivel                       = ut.Nivel
                    });
                    posicaoRank++;
                }
            }
            else
            {
                throw new Exception("Deve ser passada o ID da Trilha ou o ID do Nível da Trilha.");
            }

            return(lstResult);
        }