using System.Linq.Expressions; namespace GamificationService.Database.GenericRepository; public interface IGenericRepository where TEntity : class { IQueryable Get( Expression>? filter = null, Func, IOrderedQueryable>? orderBy = null, params Expression>[] includes); TEntity? GetById(object id); Task GetByIdAsync(object id); void Add(TEntity entity); void AddRange(IEnumerable entities); Task AddAsync(TEntity entity); void Delete(object id); void DeleteRange(IEnumerable entities); void Delete(TEntity entity); void Update(TEntity entity); }