Esempio n. 1
0
        /// <summary>
        /// Gets entity by specifications.
        ///
        /// Once query is built SingleOrDefaultAsync() is called.
        /// </summary>
        /// <param name="spec"></param>
        /// <returns></returns>
        public Task <TEntity> GetBy(IDataSpecification <TEntity> spec)
        {
            IQueryable <TEntity> queryable = _content.Set <TEntity>();

            return(EfSpecificationProcessor <TEntity> .BuildQuery(queryable, spec).SingleOrDefaultAsync());
        }
Esempio n. 2
0
        /// <summary>
        /// Filter entity by specification.
        /// </summary>
        /// <param name="spec"></param>
        /// <returns></returns>
        public Task <List <TEntity> > ListAsync(IDataSpecification <TEntity> spec)
        {
            IQueryable <TEntity> queryable = _content.Set <TEntity>();

            return(EfSpecificationProcessor <TEntity> .BuildQuery(queryable, spec).ToListAsync());
        }
Esempio n. 3
0
        /// <summary>
        /// Get a count from a specification.
        /// </summary>
        /// <param name="spec"></param>
        /// <returns></returns>
        public Task <int> CountAsync(IDataSpecification <TEntity> spec = null)
        {
            IQueryable <TEntity> queryable = _content.Set <TEntity>();

            return(EfSpecificationProcessor <TEntity> .BuildQuery(queryable, spec).CountAsync());
        }