using System; using System.Collections.Generic; using System.Linq.Expressions; using System.Threading.Tasks; namespace CQRS_Simple.Infrastructure.Uow { public interface IRepository where T : Entity { IUnitOfWork UnitOfWork { get; } T GetById(TC id); Task GetByIdAsync(TC id); IEnumerable GetAll(); IEnumerable Get(Expression> predicate); void Add(T entity); void Delete(T entity); void Update(T entity); Task> GetAllAsync(); } }