Пример #1
0
        public Resultado <int> GetCantidad(_Model.Consultas.Consulta_Pregunta consulta)
        {
            var resultado = new Resultado <int>();

            try
            {
                var query = GetQuery(consulta);
                resultado.Return = query.RowCount();
            }
            catch (Exception e)
            {
                resultado.SetError(e);
            }
            return(resultado);
        }
Пример #2
0
        public Resultado <List <Pregunta> > Get(_Model.Consultas.Consulta_Pregunta consulta)
        {
            var resultado = new Resultado <List <Pregunta> >();

            try
            {
                var query = GetQuery(consulta);
                resultado.Return = query.List().ToList();
            }
            catch (Exception e)
            {
                resultado.SetError(e);
            }
            return(resultado);
        }
Пример #3
0
        public IQueryOver <Pregunta, Pregunta> GetQuery(_Model.Consultas.Consulta_Pregunta consulta)
        {
            ClearJoins();

            var query = GetSession().QueryOver <Pregunta>();


            //Aplicacion
            if (!string.IsNullOrEmpty(consulta.Aplicacion))
            {
                JoinAplicacion(query);
                foreach (var palabra in consulta.Aplicacion.Split(' '))
                {
                    var p = palabra.Trim();
                    query.Where(() => ((joinAplicacion.Nombre != null && joinAplicacion.Nombre.IsLike(p, MatchMode.Anywhere))));
                }
            }

            //Id Aplicacion
            if (consulta.AplicacionId.HasValue)
            {
                JoinAplicacion(query);
                query.Where(() => joinAplicacion.Id != null && joinAplicacion.Id == consulta.AplicacionId.Value);
            }

            //Identificador Aplicacion
            if (!string.IsNullOrEmpty(consulta.AplicacionIdentificador))
            {
                JoinAplicacion(query);
                foreach (var palabra in consulta.AplicacionIdentificador.Split(' '))
                {
                    var p = palabra.Trim();
                    query.Where(() => ((joinAplicacion.Identificador != null && joinAplicacion.Identificador.IsLike(p, MatchMode.Anywhere))));
                }
            }

            //Tema
            if (!string.IsNullOrEmpty(consulta.Tema))
            {
                JoinTema(query);
                foreach (var palabra in consulta.Tema.Split(' '))
                {
                    var p = Convert.ToInt32(palabra.Trim());
                    query.Where(() => (joinTema.Id != null && joinTema.Id == p));
                }
            }

            //Titulo
            if (!string.IsNullOrEmpty(consulta.Titulo))
            {
                foreach (var palabra in consulta.Titulo.Split(' '))
                {
                    var p = palabra.Trim();
                    query.Where(x => x.Titulo.IsLike(p, MatchMode.Anywhere));
                }
            }

            //Dados de baja
            if (consulta.DadosDeBaja.HasValue)
            {
                if (consulta.DadosDeBaja.Value)
                {
                    query.Where(x => x.FechaBaja != null);
                }
                else
                {
                    query.Where(x => x.FechaBaja == null);
                }
            }

            return(query);
        }