diff --git a/DigitalData.Core.Abstractions/Infrastructure/Extensions.cs b/DigitalData.Core.Abstractions/Infrastructure/Extensions.cs index abd0742..a7c510d 100644 --- a/DigitalData.Core.Abstractions/Infrastructure/Extensions.cs +++ b/DigitalData.Core.Abstractions/Infrastructure/Extensions.cs @@ -4,6 +4,21 @@ namespace DigitalData.Core.Abstractions.Infrastructure; public static class Extensions { + #region Create + public static Task CreateAsync(this IRepository repository, TDto dto, CancellationToken ct = default) + { + var entity = repository.Mapper.Map(dto); + return repository.CreateAsync(entity, ct); + } + + public static Task> CreateAsync(this IRepository repository, IEnumerable dtos, CancellationToken ct = default) + { + var entities = dtos.Select(dto => repository.Mapper.Map(dto)); + return repository.CreateAsync(entities, ct); + } + #endregion + + #region Read public static async Task ReadFirstOrDefaultAsync(this IRepository repository, Expression>? expression = null) => (await repository.ReadAsync(expression)).FirstOrDefault(); @@ -15,4 +30,5 @@ public static class Extensions public static async Task ReadSingleAsync(this IRepository repository, Expression>? expression = null) => (await repository.ReadAsync(expression)).Single(); + #endregion } diff --git a/DigitalData.Core.Abstractions/Infrastructure/IRepository.cs b/DigitalData.Core.Abstractions/Infrastructure/IRepository.cs index af5eda4..f0e72c9 100644 --- a/DigitalData.Core.Abstractions/Infrastructure/IRepository.cs +++ b/DigitalData.Core.Abstractions/Infrastructure/IRepository.cs @@ -9,11 +9,7 @@ public interface IRepository public Task CreateAsync(TEntity entity, CancellationToken ct = default); public Task> CreateAsync(IEnumerable entities, CancellationToken ct = default); - - public Task CreateAsync(TDto dto, CancellationToken ct = default); - - public Task> CreateAsync(IEnumerable dtos, CancellationToken ct = default); - + public Task> ReadAsync(Expression>? expression = null, CancellationToken ct = default); public Task UpdateAsync(TDto dto, Expression> expression, CancellationToken ct = default); diff --git a/DigitalData.Core.Infrastructure/DbRepository.cs b/DigitalData.Core.Infrastructure/DbRepository.cs index eec8ef5..39ac1df 100644 --- a/DigitalData.Core.Infrastructure/DbRepository.cs +++ b/DigitalData.Core.Infrastructure/DbRepository.cs @@ -32,18 +32,6 @@ public class DbRepository : IRepository where TDbC return entities; } - public virtual Task CreateAsync(TDto dto, CancellationToken ct = default) - { - var entity = Mapper.Map(dto); - return CreateAsync(entity, ct); - } - - public virtual Task> CreateAsync(IEnumerable dtos, CancellationToken ct = default) - { - var entities = dtos.Select(dto => Mapper.Map(dto)); - return CreateAsync(entities, ct); - } - public virtual async Task> ReadAsync(Expression>? expression = null, CancellationToken ct = default) => expression is null ? await Entities.AsNoTracking().ToListAsync(ct)