/// <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()); }
/// <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()); }
/// <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()); }