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