using System.Linq.Expressions; namespace DigitalData.Core.Abstractions.Infrastructure; public static class Extensions { public static async Task ReadFirstOrDefaultAsync(this IRepository repository, Expression>? expression = null) => (await repository.ReadAsync(expression)).FirstOrDefault(); public static async Task ReadFirstAsync(this IRepository repository, Expression>? expression = null) => (await repository.ReadAsync(expression)).First(); public static async Task ReadSingleOrDefaultAsync(this IRepository repository, Expression>? expression = null) => (await repository.ReadAsync(expression)).SingleOrDefault(); public static async Task ReadSingleAsync(this IRepository repository, Expression>? expression = null) => (await repository.ReadAsync(expression)).Single(); }