private void ObterOferta(int solucaoEducacionalId) { var manterSolucaoEducacional = new ManterOferta(); var listaSolucaoEducacional = manterSolucaoEducacional.ObterOfertaPorSolucaoEducacional(new classes.SolucaoEducacional { ID = solucaoEducacionalId }).ToList(); listaSolucaoEducacional.Insert(0, new classes.Oferta { Nome = "::Selecione::" }); ddlOferta.DataSource = listaSolucaoEducacional; ddlOferta.DataValueField = "ID"; ddlOferta.DataTextField = "Nome"; ddlOferta.DataBind(); // Na troca de solução educacional caso tenha itens no combo de turma zera a sua listagem if (ddlTurma.Items.Count > 0) { IList <classes.Turma> ListaTurma = new List <classes.Turma>(); ListaTurma.Insert(0, new classes.Turma { Nome = "::Selecione::" }); ddlTurma.DataSource = ListaTurma; ddlTurma.DataValueField = "ID"; ddlTurma.DataTextField = "Nome"; ddlTurma.DataBind(); } }
private static bool VerificarDisponibilidadeOfertasPorPermissoes(Usuario usuario, int solucaoId, ref DTODisponibilidadeSolucaoEducacional retorno) { var manterOferta = new ManterOferta(); //var ofertas = manterOferta.ObterOfertaPorSolucaoEducacional(solucaoId).Where( // x => // ((x.DataFim.HasValue && x.DataFim.Value.Date >= DateTime.Today) || (!x.DataFim.HasValue)) && // (x.DataInicioInscricoes.HasValue && x.DataInicioInscricoes.Value.Date <= DateTime.Today) && // (x.TipoOferta == enumTipoOferta.Continua || // (x.DataFimInscricoes.HasValue && x.DataFimInscricoes.Value.Date >= DateTime.Today)) && // // Seria sábio utilizar o método PossuiTurmasDisponiveis() da Oferta.cs, se o NHibernte não pirasse. // x.ListaTurma.Any(t => t.Status != enumStatusTurma.Cancelada && t.InAberta)) // .ToList() // // Somente usuários que possuem permissão de inscrição. // .Where(x => x.UsuarioPossuiPermissao(usuario)) // .OrderBy(x => x.DataInicio) // .ToList(); var ofertas = manterOferta.ObterOfertaPorSolucaoEducacional(solucaoId).Where( x => (x.DataInicioInscricoes.HasValue && x.DataInicioInscricoes.Value.Date <= DateTime.Today) && (x.TipoOferta == enumTipoOferta.Continua || (x.DataFimInscricoes.HasValue && x.DataFimInscricoes.Value.Date >= DateTime.Today)) && // Seria sábio utilizar o método PossuiTurmasDisponiveis() da Oferta.cs, se o NHibernte não pirasse. x.ListaTurma.Any(t => (!t.Status.HasValue || t.Status != enumStatusTurma.Cancelada) && t.InAberta)) .ToList() // Somente usuários que possuem permissão de inscrição. .Where(x => x.UsuarioPossuiPermissao(usuario)) .OrderBy(x => x.DataInicioInscricoes) .ToList(); foreach (var oferta in ofertas) { VerificarDisponibilidadeOferta(usuario, oferta, ref retorno); } if (retorno.IdOferta.HasValue || retorno.OfertasDisponiveis.Any()) { return(true); } return(false); }