diff --git a/DigitalData.Core.Abstractions/Infrastructure/Extensions.cs b/DigitalData.Core.Abstractions/Infrastructure/Extensions.cs new file mode 100644 index 0000000..abd0742 --- /dev/null +++ b/DigitalData.Core.Abstractions/Infrastructure/Extensions.cs @@ -0,0 +1,18 @@ +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(); +} diff --git a/DigitalData.Core.Abstractions/Infrastructure/IRepository.cs b/DigitalData.Core.Abstractions/Infrastructure/IRepository.cs index 21514d5..750df26 100644 --- a/DigitalData.Core.Abstractions/Infrastructure/IRepository.cs +++ b/DigitalData.Core.Abstractions/Infrastructure/IRepository.cs @@ -17,5 +17,4 @@ public interface IRepository public Task UpdateAsync(TDto dto, Expression> expression, CancellationToken ct = default); public Task DeleteAsync(Expression> expression, CancellationToken ct = default); - Task ReadAsync(Core.Tests.Mock.User user); }