classlib/ExpenseTracker.Application/Common/Interfaces/Repositories/IBaseRepository.cs
2024-08-07 21:12:02 +03:00

22 lines
779 B
C#

using System.Linq.Expressions;
using ExpenseTracker.Domain.Entities;
namespace ExpenseTracker.Application.Common.Interfaces.Repositories;
public interface IBaseRepository<TEntity, TKey>
where TKey : IEquatable<TKey>
where TEntity : EntityBase<TKey>
{
public IQueryable<TEntity> Queryable { get; }
Task<TEntity> AddOneAsync(TEntity entity, CancellationToken cancellationToken);
Task<IEnumerable<TEntity>> AddManyAsync(IEnumerable<TEntity> entities, CancellationToken cancellationToken);
Task<TEntity> UpdateOneAsync(TEntity entity, CancellationToken cancellationToken);
Task DeleteOneAsync(TKey id, CancellationToken cancellationToken);
Task DeleteManyAsync(Expression<Func<TEntity, bool>> predicate, CancellationToken cancellationToken);
}