using PoweredSoft.Data.Core; using System.Linq.Expressions; namespace Svrnty.Sample; /// /// Simple in-memory implementation of IAsyncQueryableService for testing/demo purposes /// public class SimpleAsyncQueryableService : IAsyncQueryableService { public IEnumerable Handlers { get; } = Array.Empty(); public Task> ToListAsync(IQueryable queryable, CancellationToken cancellationToken = default) { return Task.FromResult(queryable.ToList()); } public Task FirstOrDefaultAsync(IQueryable queryable, CancellationToken cancellationToken = default) { return Task.FromResult(queryable.FirstOrDefault()); } public Task FirstOrDefaultAsync(IQueryable queryable, Expression> predicate, CancellationToken cancellationToken = default) { return Task.FromResult(queryable.FirstOrDefault(predicate)); } public Task LastOrDefaultAsync(IQueryable queryable, CancellationToken cancellationToken = default) { return Task.FromResult(queryable.LastOrDefault()); } public Task LastOrDefaultAsync(IQueryable queryable, Expression> predicate, CancellationToken cancellationToken = default) { return Task.FromResult(queryable.LastOrDefault(predicate)); } public Task AnyAsync(IQueryable queryable, Expression> predicate, CancellationToken cancellationToken = default) { return Task.FromResult(queryable.Any(predicate)); } public Task AllAsync(IQueryable queryable, Expression> predicate, CancellationToken cancellationToken = default) { return Task.FromResult(queryable.All(predicate)); } public Task CountAsync(IQueryable queryable, CancellationToken cancellationToken = default) { return Task.FromResult(queryable.Count()); } public Task LongCountAsync(IQueryable queryable, CancellationToken cancellationToken = default) { return Task.FromResult(queryable.LongCount()); } public Task SingleOrDefaultAsync(IQueryable queryable, Expression> predicate, CancellationToken cancellationToken = default) { return Task.FromResult(queryable.SingleOrDefault(predicate)); } public Task AnyAsync(IQueryable queryable, CancellationToken cancellationToken = default) { return Task.FromResult(queryable.Any()); } public IAsyncQueryableHandlerService? GetAsyncQueryableHandler(IQueryable queryable) { return null; // No special handling needed for in-memory queries } }