using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; using System.Threading; using System.Threading.Tasks; namespace PoweredSoft.DbContext.Core { public interface IQueryableOperationsService { IQueryable Include(IQueryable source, Expression> path) where T : class; IQueryable AsNoTracking(IQueryable source) where T : class; IQueryable AsNoTracking(IQueryable source); IQueryable Include(IQueryable source, string path) where T : class; Task FirstOrDefaultAsync(IQueryable source, CancellationToken cancellationToken = default) where T : class; Task FirstOrDefaultAsync(IQueryable source, Expression> predicate, CancellationToken cancellationToken = default) where T : class; Task FirstAsync(IQueryable source, CancellationToken cancellationToken = default) where T : class; Task FirstAsync(IQueryable source, Expression> predicate, CancellationToken cancellationToken = default) where T : class; Task> ToListAsync(IQueryable source, CancellationToken cancellationToken = default) where T : class; Task AnyAsync(IQueryable source, System.Linq.Expressions.Expression> predicate, CancellationToken cancellationToken) where T : class; Task AnyAsync(IQueryable source, CancellationToken cancellationToken) where T : class; } }