using Modules.Library.Domain.Entities; using System.Linq.Expressions; namespace Modules.Library.Application.Gateways; public interface IRepository { Task> GetAllAsync(); Task GetByIdAsync(TKey id); Task GetByIdOrDefaultAsync(TKey id); Task> GetRangeByIdsAsync(List ids); Task GetFirstWhere(Expression> predicate); Task GetFirstOrDefaultWhere(Expression> predicate); Task> GetWhere(Expression> predicate); Task AnyWhere(Expression> predicate); /* Task AddAsync(T entity, IUser user); Task UpdateAsync(T entity, IUser user); Task DeleteAsync(T entity, IUser user); */ Task AddAsync(T entity); Task UpdateAsync(T entity); Task DeleteAsync(T entity); } public interface IRepository : IRepository where T : Entity { } //public interface IRepository : IRepository { }