using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; using System.Threading; using System.Threading.Tasks; namespace PoweredSoft.Data.Core { public interface IAsyncQueryableService { IEnumerable Handlers { get; } IAsyncQueryableHandlerService GetAsyncQueryableHandler(IQueryable queryable); Task FirstOrDefaultAsync(IQueryable queryable, CancellationToken cancellationToken = default(CancellationToken)); Task FirstOrDefaultAsync(IQueryable queryable, Expression> predicate, CancellationToken cancellationToken = default(CancellationToken)); Task> ToListAsync(IQueryable queryable, CancellationToken cancellationToken = default(CancellationToken)); Task CountAsync(IQueryable queryable, CancellationToken cancellationToken = default(CancellationToken)); Task LongCountAsync(IQueryable queryable, CancellationToken cancellationToken = default(CancellationToken)); Task AnyAsync(IQueryable queryable, Expression> predicate, CancellationToken cancellationToken = default(CancellationToken)); Task AnyAsync(IQueryable queryable, CancellationToken cancellationToken = default(CancellationToken)); } }