예제 #1
0
        public IQueryable <SolucaoEducacional> ListaSolucaoEducacionalPorCategorias(List <int> categorias)
        {
            var lista = new ManterSolucaoEducacional().ObterTodosSolucaoEducacional();

            if (categorias != null && categorias.Any())
            {
                lista = lista.Where(x => categorias.Contains(x.CategoriaConteudo.ID));
            }

            return(lista);
        }
예제 #2
0
        protected void btnMatricular_Click(object sender, EventArgs e)
        {
            var idsSolucaoEducacionalSelecionados = new List <int>();
            var idsNivelOcupacionalSelecionados   = new List <int>();

            switch (rblEfetuar.SelectedValue)
            {
            case "SolucaoEducacional":
                idsSolucaoEducacionalSelecionados.Add(int.Parse(ddlSolucaoEducacional.SelectedValue));
                ObterSelecionados(ref idsNivelOcupacionalSelecionados, ddlNivelOcupacional, cblNivelOcupacional);
                break;

            case "NivelOcupacional":
                idsNivelOcupacionalSelecionados.Add(int.Parse(ddlNivelOcupacional.SelectedValue));
                ObterSelecionados(ref idsSolucaoEducacionalSelecionados, ddlSolucaoEducacional, cblSolucaoEducacional);
                break;
            }

            // Obter soluções obrigatórias filtradas pela seleção.
            var solucoesObrigatorias = new ManterSolucaoEducacional()
                                       .ObterObrigatoriosPorSolucaoEducacionalNiveisOcupacionais(
                idsSolucaoEducacionalSelecionados,
                idsNivelOcupacionalSelecionados);

            // Filtra as soluções pelas que possuam Ofertas e Turmas vigentes.
            var listaSolucoesObrigatorias =
                solucoesObrigatorias.Where(
                    x =>
                    x.SolucaoEducacional.ListaOferta.Any(
                        o => Helpers.Util.ObterVigente(o.DataInicioInscricoes, o.DataFimInscricoes) &&
                        o.ListaTurma.Any(t => Helpers.Util.ObterVigente(t.DataInicio, t.DataFinal)))).ToList();

            // Obtém somente os usuários dos níveis ocupacionais selecionados.
            var usuariosTodosNiveis =
                new ManterUsuario().ObterPorNiveisOcupacionais(idsNivelOcupacionalSelecionados)
                .AsQueryable();

            var usuarioLogado = new ManterUsuario().ObterUsuarioLogado();

            // Filtrar os usuários pela UF do gestor logado, caso aplicável.
            if (usuarioLogado.IsGestor())
            {
                usuariosTodosNiveis = usuariosTodosNiveis.Where(x => x.UF.ID == usuarioLogado.UF.ID);
            }

            if (listaSolucoesObrigatorias.Any())
            {
                EfetuarMatriculas(listaSolucoesObrigatorias, usuariosTodosNiveis);

                WebFormHelper.ExibirMensagem(enumTipoMensagem.Sucesso,
                                             string.Format(
                                                 "As matrículas estão sendo alteradas automaticamente, isto pode demorar, pois estão sendo efetuadas matrículas em {0} Soluções Educacionais, para usuários em {1} Níveis Ocupacionais.",
                                                 idsSolucaoEducacionalSelecionados.Count(),
                                                 idsNivelOcupacionalSelecionados.Count()));
            }
            else
            {
                WebFormHelper.ExibirMensagem(enumTipoMensagem.Sucesso,
                                             "Não foi encontrada nenhuma Solução Educacional obrigatória com alunos que precisam ser matrículados, de acordo com os filtros selecionados.");
            }
        }