diff --git a/samples/EasyWay.Samples/Databases/SampleAggragateRootRepository.cs b/samples/EasyWay.Samples/Databases/SampleAggragateRootRepository.cs index 27c0cd6..a934211 100644 --- a/samples/EasyWay.Samples/Databases/SampleAggragateRootRepository.cs +++ b/samples/EasyWay.Samples/Databases/SampleAggragateRootRepository.cs @@ -4,9 +4,9 @@ namespace EasyWay.Samples.Databases { public class SampleAggragateRootRepository : ISampleAggragateRootRepository, IAsyncDisposable { - private readonly IWriteGenericRepository _repository; + private readonly IGenericRepository _repository; - public SampleAggragateRootRepository(IWriteGenericRepository repository) + public SampleAggragateRootRepository(IGenericRepository repository) { _repository = repository; } diff --git a/source/EasyWay.EntityFrameworkCore/Extnsions.cs b/source/EasyWay.EntityFrameworkCore/Extnsions.cs index 968f8da..17bbd3f 100644 --- a/source/EasyWay.EntityFrameworkCore/Extnsions.cs +++ b/source/EasyWay.EntityFrameworkCore/Extnsions.cs @@ -21,7 +21,7 @@ public static void AddEntityFrameworkCore( services.AddScoped(); services.AddTransient(); - services.AddScoped(typeof(IWriteGenericRepository<>), typeof(WriteGenericRepository<>)); + services.AddScoped(typeof(IGenericRepository<>), typeof(GenericRepository<>)); services.AddTransactions(); } diff --git a/source/EasyWay.EntityFrameworkCore/IWriteGenericRepository.cs b/source/EasyWay.EntityFrameworkCore/IGenericRepository.cs similarity index 79% rename from source/EasyWay.EntityFrameworkCore/IWriteGenericRepository.cs rename to source/EasyWay.EntityFrameworkCore/IGenericRepository.cs index 90bb6e7..4d66d85 100644 --- a/source/EasyWay.EntityFrameworkCore/IWriteGenericRepository.cs +++ b/source/EasyWay.EntityFrameworkCore/IGenericRepository.cs @@ -2,7 +2,7 @@ namespace EasyWay { - public interface IWriteGenericRepository + public interface IGenericRepository where TAggregateRoot : AggregateRoot { Task Add(TAggregateRoot aggregateRoot); @@ -11,6 +11,8 @@ public interface IWriteGenericRepository Task Get(Guid id); + Task> Get(Expression> predicate); + Task Remove(TAggregateRoot aggregateRoot); Task Remove(IEnumerable aggregateRoots); diff --git a/source/EasyWay.EntityFrameworkCore/Internals/Repositories/WriteGenericRepository.cs b/source/EasyWay.EntityFrameworkCore/Internals/Repositories/GenericRepository.cs similarity index 82% rename from source/EasyWay.EntityFrameworkCore/Internals/Repositories/WriteGenericRepository.cs rename to source/EasyWay.EntityFrameworkCore/Internals/Repositories/GenericRepository.cs index 079424a..585b0a8 100644 --- a/source/EasyWay.EntityFrameworkCore/Internals/Repositories/WriteGenericRepository.cs +++ b/source/EasyWay.EntityFrameworkCore/Internals/Repositories/GenericRepository.cs @@ -3,12 +3,12 @@ namespace EasyWay.Internals.Repositories { - internal sealed class WriteGenericRepository : IWriteGenericRepository + internal sealed class GenericRepository : IGenericRepository where TAggregateRoot : AggregateRoot { private readonly DbSet _aggregateRoots; - public WriteGenericRepository(DbContext dbContext) + public GenericRepository(DbContext dbContext) { _aggregateRoots = dbContext.Set(); } @@ -48,6 +48,11 @@ public Task Count(Expression> predicate) return _aggregateRoots.FindAsync(id).AsTask(); } + public async Task> Get(Expression> predicate) + { + return await _aggregateRoots.Where(predicate).ToListAsync(); + } + public Task Remove(TAggregateRoot aggregateRoot) { _aggregateRoots.Remove(aggregateRoot);