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);
                }
            }
        }
Ejemplo n.º 2
0
        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());
        }