feat(repository): add extension methods for IRepository operations
- Added extensions for IRepository to support Get, Create, Update, and Delete operations. - Maintains existing IRepository<TEntity> CreateAsync methods for DTO mapping. - Improves consistency and usability across repository abstractions.
This commit is contained in:
parent
ce8e563e4e
commit
886a107c71
@ -17,4 +17,26 @@ public static class Extensions
|
|||||||
return repository.CreateAsync(entities, ct);
|
return repository.CreateAsync(entities, ct);
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
#region IRepository
|
||||||
|
public static IQueryable<TEntity> Get<TEntity>(this IRepository repository) => repository.Entity<TEntity>().Get();
|
||||||
|
|
||||||
|
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 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);
|
||||||
|
|
||||||
|
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
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user