From 886a107c71c0e3ed1d5544e6e8db84c8225749ba Mon Sep 17 00:00:00 2001 From: TekH Date: Wed, 10 Sep 2025 17:22:56 +0200 Subject: [PATCH] feat(repository): add extension methods for IRepository operations - Added extensions for IRepository to support Get, Create, Update, and Delete operations. - Maintains existing IRepository CreateAsync methods for DTO mapping. - Improves consistency and usability across repository abstractions. --- .../Repository/Extensions.cs | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/DigitalData.Core.Abstraction.Application/Repository/Extensions.cs b/DigitalData.Core.Abstraction.Application/Repository/Extensions.cs index 9d86ac5..623fb4f 100644 --- a/DigitalData.Core.Abstraction.Application/Repository/Extensions.cs +++ b/DigitalData.Core.Abstraction.Application/Repository/Extensions.cs @@ -17,4 +17,26 @@ public static class Extensions return repository.CreateAsync(entities, ct); } #endregion + + #region IRepository + public static IQueryable Get(this IRepository repository) => repository.Entity().Get(); + + public static Task CreateAsync(this IRepository repository, TEntity entity, CancellationToken cancel = default) + => repository.Entity().CreateAsync(entity, cancel); + + public static Task CreateAsync(this IRepository repository, TDto dto, CancellationToken cancel = default) + => repository.Entity().CreateAsync(dto, cancel); + + public static Task UpdateAsync(this IRepository repository, TDto dto, Expression> expression, CancellationToken cancel = default) + => repository.Entity().UpdateAsync(dto, expression, cancel); + + public static Task UpdateAsync(this IRepository repository, TDto dto, Func, IQueryable> query, CancellationToken cancel = default) + => repository.Entity().UpdateAsync(dto, query, cancel); + + public static Task DeleteAsync(this IRepository repository, Expression> expression, CancellationToken cancel = default) + => repository.Entity().DeleteAsync(expression, cancel); + + public static Task DeleteAsync(this IRepository repository, Func, IQueryable> query, CancellationToken cancel = default) + => repository.Entity().DeleteAsync(query, cancel); + #endregion }