refactor(repository): reorganize IRepository extensions and add missing overloads
- Added regions for Create, Update, and Delete for better structure - Introduced `Where` extension for IRepository - Added batch `CreateAsync` overloads for entities and DTOs - Improved readability and consistency across IRepository extension methods
This commit is contained in:
@@ -21,22 +21,36 @@ public static class Extensions
|
||||
#region IRepository
|
||||
public static IQueryable<TEntity> Get<TEntity>(this IRepository repository) => repository.Entity<TEntity>().Get();
|
||||
|
||||
public static IQueryable<TEntity> Where<TEntity>(this IRepository repository) => repository.Entity<TEntity>().Where();
|
||||
|
||||
#region Create
|
||||
public static Task<TEntity> CreateAsync<TEntity>(this IRepository repository, TEntity entity, CancellationToken cancel = default)
|
||||
=> repository.Entity<TEntity>().CreateAsync(entity, cancel);
|
||||
|
||||
public static Task<TEntity> CreateAsync<TEntity, TDto>(this IRepository repository, TDto dto, CancellationToken cancel = default)
|
||||
=> repository.Entity<TEntity>().CreateAsync(dto, cancel);
|
||||
|
||||
public static Task<IEnumerable<TEntity>> CreateAsync<TEntity>(this IRepository repository, IEnumerable<TEntity> entities, CancellationToken cancel = default)
|
||||
=> repository.Entity<TEntity>().CreateAsync(entities, cancel);
|
||||
|
||||
public static Task<IEnumerable<TEntity>> CreateAsync<TEntity, TDto>(this IRepository repository, IEnumerable<TDto> dtos, CancellationToken cancel = default)
|
||||
=> repository.Entity<TEntity>().CreateAsync(dtos, cancel);
|
||||
#endregion Create
|
||||
|
||||
#region Update
|
||||
public static Task UpdateAsync<TEntity, TDto>(this IRepository repository, TDto dto, Expression<Func<TEntity, bool>> expression, CancellationToken cancel = default)
|
||||
=> repository.Entity<TEntity>().UpdateAsync(dto, expression, cancel);
|
||||
|
||||
public static Task UpdateAsync<TEntity, TDto>(this IRepository repository, TDto dto, Func<IQueryable<TEntity>, IQueryable<TEntity>> query, CancellationToken cancel = default)
|
||||
=> repository.Entity<TEntity>().UpdateAsync(dto, query, cancel);
|
||||
#endregion
|
||||
|
||||
#region Delete
|
||||
public static Task DeleteAsync<TEntity>(this IRepository repository, Expression<Func<TEntity, bool>> expression, CancellationToken cancel = default)
|
||||
=> repository.Entity<TEntity>().DeleteAsync(expression, cancel);
|
||||
|
||||
public static Task DeleteAsync<TEntity>(this IRepository repository, Func<IQueryable<TEntity>, IQueryable<TEntity>> query, CancellationToken cancel = default)
|
||||
=> repository.Entity<TEntity>().DeleteAsync(query, cancel);
|
||||
#endregion
|
||||
}
|
||||
#endregion
|
||||
}
|
||||
Reference in New Issue
Block a user