public void vinculaMatriculaOferta(MatriculaOferta matriculaOferta) { matriculaOferta = new ManterMatriculaOferta().ObterMatriculaOfertaPorID(matriculaOferta.ID); // VERIFICA SE MATRICULA OFERTA PERTENCE A ALGUM ITEM TRILHA if (!matriculaOferta.ListaItemTrilhaParticipacao.Any()) { //BUSCA A LISTA DE TURMAS DA MESMA OFERTA CONTINUA var turmasOfertaID = new ManterTurma().ObterTodosIQueryable() .Where(x => x.Oferta.ID == matriculaOferta.Oferta.ID) .Select(x => x.ID).ToList(); //BUSCA A LISTA DE MATRICULAS OFERTA DO USUARIO POR TURMA var matriculasOfertaID = new ManterMatriculaTurma().ObterTodosIQueryable() .Where(x => turmasOfertaID.Contains(x.Turma.ID) && matriculaOferta.Usuario.ID == x.MatriculaOferta.Usuario.ID) .Select(y => y.MatriculaOferta.ID) .ToList(); var itemTrilhaParticipacaoUsuario = new ManterItemTrilhaParticipacao().ObterTodosIQueryable() .FirstOrDefault(x => matriculasOfertaID.Contains(x.MatriculaOferta.ID) && x.Autorizado == false); if (itemTrilhaParticipacaoUsuario != null) { itemTrilhaParticipacaoUsuario.MatriculaOferta = matriculaOferta; Salvar(itemTrilhaParticipacaoUsuario); } } }
private IQueryable <ItemTrilhaParticipacao> ObterListaItemTrilhaParticipacao(int?idMonitor, int?idUsuario = null) { // Filtar pelo Status. var aprovadas = cblStatus.Items[0].Selected; var emRevisao = cblStatus.Items[1].Selected; var pendentes = cblStatus.Items[2].Selected; var suspensas = cblStatus.Items[3].Selected; var lista = new ManterItemTrilhaParticipacao().ObterSolucoesRecentes2016(aprovadas, emRevisao, pendentes, suspensas); if (lista.Any() && idMonitor.HasValue) { lista = lista.Where( x => x.ItemTrilha.Missao.PontoSebrae.TrilhaNivel.Monitor != null && x.ItemTrilha.Missao.PontoSebrae.TrilhaNivel.Monitor.ID == idMonitor.Value); } if (ddlMissao.SelectedIndex > 0) { lista = lista.Where(x => x.ItemTrilha.Missao.ID == int.Parse(ddlMissao.SelectedValue)); } else { if (ddlPontoSebrae.SelectedIndex > 0) { lista = lista.Where(x => x.ItemTrilha.Missao.PontoSebrae.ID == int.Parse(ddlPontoSebrae.SelectedValue)); } else if (ddlTrilhaNivel.SelectedIndex > 0) { lista = lista.Where( x => x.ItemTrilha.Missao.PontoSebrae.TrilhaNivel.ID == int.Parse(ddlTrilhaNivel.SelectedValue)); } else if (ddlTrilha.SelectedIndex > 0) { lista = lista.Where( x => x.ItemTrilha.Missao.PontoSebrae.TrilhaNivel.Trilha.ID == int.Parse(ddlTrilha.SelectedValue)); } } if (idUsuario != null && idUsuario > 0) { lista = lista.Where( x => x.UsuarioTrilha != null && x.UsuarioTrilha.Usuario != null && x.UsuarioTrilha.Usuario.ID == idUsuario); } return(lista.OrderByDescending(x => x.DataEnvio).AsQueryable()); }