/// <summary> /// Obtém questionários pelo tipo, UF do gestor e categoria. /// </summary> /// <param name="tipoQuestionario"></param> /// <param name="uf">UF do gestor logado. Caso nula, não interfere na consulta</param> /// <param name="idCategoria"></param> /// <returns></returns> public IList <Questionario> ObterQuestionariosPorCategoria(enumTipoQuestionario tipoQuestionario, int idCategoria = 0) { var query = repositorio.session.Query <Questionario>().Where(x => x.TipoQuestionario != null && x.TipoQuestionario.ID == (int)tipoQuestionario); if (idCategoria != 0) { query = query.Where(x => x.ListaCategoriaConteudo.Any(p => p.ID == idCategoria) || !x.ListaCategoriaConteudo.Any()); } return(query.ToList()); }
/// <summary> /// Obtém questionários pelo tipo informado. /// </summary> /// <param name="tipoQuestionario"></param> /// <param name="idCategoria"></param> /// <returns></returns> public IList <Questionario> ObterQuestionariosPorFiltro(enumTipoQuestionario tipoQuestionario, int?idCategoria = null) { var query = repositorio.session.Query <Questionario>(); //Join com Tipo Questionário query = query.Fetch(x => x.TipoQuestionario); query = query.Where(x => x.TipoQuestionario.ID != (int)enumTipoQuestionario.Dinamico); //Esta comparação só é possível com o uso de implicit operator, na classe de domínio TipoQuestionario. query = query.Where(x => x.TipoQuestionario.ID == (int)tipoQuestionario); if (idCategoria != null) { query = query.Where(x => x.ListaCategoriaConteudo.Any(p => p.ID == idCategoria.Value) || !x.ListaCategoriaConteudo.Any()); } return(query.ToList()); }
private IList <Questionario> ObterQuestionariosPorFiltro(enumTipoQuestionario tipoQuestionario, int?idCategoria = null) { return(bmQuestionario.ObterQuestionariosPorFiltro(tipoQuestionario, idCategoria)); }