using EnvelopeGenerator.Application.Contracts.SQLExecutor; using Microsoft.EntityFrameworkCore; namespace EnvelopeGenerator.Infrastructure.Executor; public sealed record Query : IQuery { private readonly IQueryable _query; internal Query(IQueryable queryable) { _query = queryable; } public TEntity First() => _query.First(); public Task FirstAsync() => _query.FirstAsync(); public TEntity? FirstOrDefault() => _query.FirstOrDefault(); public Task FirstOrDefaultAsync() => _query.FirstOrDefaultAsync(); public TEntity Single() => _query.Single(); public Task SingleAsync() => _query.SingleAsync(); public TEntity? SingleOrDefault() => _query.SingleOrDefault(); public Task SingleOrDefaultAsync() => _query.SingleOrDefaultAsync(); public IEnumerable ToList() => _query.ToList(); public async Task> ToListAsync() => await _query.ToListAsync(); }