Example #1
0
        /// <summary>
        /// Inclui entidades na consulta
        /// </summary>
        /// <param name="carregarEntidades"></param>
        /// <param name="tabela"></param>
        /// <returns></returns>
        protected static IQueryable <TEntidade> IncluiEntidades(ListaEntidade <TEntidade> carregarEntidades, IQueryable <TEntidade> tabela)
        {
            if (carregarEntidades != null && carregarEntidades.Itens != null && carregarEntidades.Itens.Any())
            {
                foreach (Expression <Func <TEntidade, IEntidade> > path in carregarEntidades.Itens)
                {
                    tabela = tabela.Include(path);
                }
            }

            if (carregarEntidades != null && carregarEntidades.Itens_collection != null && carregarEntidades.Itens_collection.Any())
            {
                foreach (Expression <Func <TEntidade, IEnumerable <IEntidade> > > path in carregarEntidades.Itens_collection)
                {
                    tabela = tabela.Include(path);
                }
            }
            return(tabela);
        }
Example #2
0
        /// <summary>
        /// Retorna a lista de objetos aplicando um filtro
        /// </summary>
        /// <param name="filtro">Expressão a ser usada como filtro</param>
        /// <param name="carregarEntidades">Entidades que devem ser carregadas na consulta</param>
        /// <returns>Lista de objetos encontrados</returns>
        public async Task <List <TEntidade> > ConsultarOrdenadoAsync <TKey>(Expression <Func <TEntidade, bool> > filtro, Expression <Func <TEntidade, TKey> > ordenacao, ListaEntidade <TEntidade> carregarEntidades = null, bool ascendente = true)
        {
            //Busca o objeto solicitado

            this.Db.ChangeTracker.AutoDetectChangesEnabled = false;

            IQueryable <TEntidade> tabela = null;

            if (filtro == null)
            {
                tabela = this.Db.Set <TEntidade>().AsQueryable();
            }
            else
            {
                tabela = this.Db.Set <TEntidade>().Where(filtro);
            }

            //Ordena os itens
            if (ordenacao != null)
            {
                if (!ascendente)
                {
                    tabela = tabela.OrderByDescending(ordenacao);
                }
                else
                {
                    tabela = tabela.OrderBy(ordenacao);
                }
            }

            tabela = IncluiEntidades(carregarEntidades, tabela);

            //Retorna
            return(await tabela.ToListAsync());
        }
Example #3
0
        public async Task <List <TEntidade> > ConsultarAsync(Expression <Func <TEntidade, bool> > filtro, ListaEntidade <TEntidade> carregarEntidades = null, int paginaAtual = -1, int itensPagina = -1, bool ascendente = true)
        {
            //Busca o objeto solicitado

            this.Db.ChangeTracker.AutoDetectChangesEnabled = false;

            IQueryable <TEntidade> tabela = null;

            if (filtro == null)
            {
                tabela = this.Db.Set <TEntidade>().AsQueryable();
            }
            else
            {
                tabela = this.Db.Set <TEntidade>().Where(filtro);
            }

            tabela = IncluiEntidades(carregarEntidades, tabela);

            //Efetua a busca no banco
            if (paginaAtual > -1 && itensPagina > -1)
            {
                tabela = tabela.Skip(paginaAtual * itensPagina).Take(itensPagina);
            }

            //Retorna
            return(await tabela.ToListAsync());
        }
Example #4
0
        /// <summary>
        /// Retorna o objeto solicitado
        /// </summary>
        /// <param name="cod_anexo">ID do item</param>
        /// <param name="carregarEntidades">Entidades que devem ser carregadas na consulta</param>
        /// <returns>Objeto</returns>
        public async Task <TEntidade> ObterAsync(Expression <Func <TEntidade, bool> > filtro, ListaEntidade <TEntidade> carregarEntidades = null)
        {
            var retorno = default(TEntidade);

            //Busca o objeto solicitado

            this.Db.ChangeTracker.AutoDetectChangesEnabled = false;

            IQueryable <TEntidade> tabela = this.Db.Set <TEntidade>().Where(filtro);

            tabela = IncluiEntidades(carregarEntidades, tabela);

            retorno = await tabela.FirstOrDefaultAsync();

            //Retorna
            return(retorno);
        }