public Patrocinador ObterPatrocinadorAtual(Patrocinado patrocinado) { var contratos = DetachedCriteria.For<ContratoPatrocinio>(); var filtraContratosPorPatrocinado = new EspecificacaoFiltrarContratosPorPatrocinado(patrocinado); var filtrarContratosAtivos = new EspecificacaoFiltrarContratosAtivos(patrocinado); filtraContratosPorPatrocinado.And(filtrarContratosAtivos).MontarCriterios(contratos); var patrocinadores = Session.CreateCriteria<Patrocinador>(); var filtraPatrocinadorPorContratos = new EspecificacaoFiltraPatrocinadoresPorContrato(patrocinadores); filtraPatrocinadorPorContratos.MontarCriterios(contratos); return patrocinadores.UniqueResult<Patrocinador>(); }
public IList<Patrocinador> ObterTodosPatrocinadosQueTenhamContratoCom(Patrocinado patrocinado) { var contratos = DetachedCriteria.For<ContratoPatrocinio>(); var filtraContratosPorPatrocinado = new EspecificacaoFiltrarContratosPorPatrocinado(patrocinado); filtraContratosPorPatrocinado.MontarCriterios(contratos); var patrocinadores = Session.CreateCriteria<Patrocinador>(); var filtraPatrocinadorPorContratos = new EspecificacaoFiltraPatrocinadoresPorContrato(patrocinadores); filtraPatrocinadorPorContratos.MontarCriterios(contratos); return patrocinadores.SetFetchMode("Patrocinados", FetchMode.Eager) .SetResultTransformer(Transformers.DistinctRootEntity) .List<Patrocinador>().ToList(); }