using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; using System.Threading; using System.Threading.Tasks; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Query; using Ombi.Store.Entities; namespace Ombi.Store.Repository { public interface IRepository where T : IEntity { Task Find(object key); Task Find(object key, CancellationToken cancellationToken); IQueryable GetAll(); Task FirstOrDefaultAsync(Expression> predicate); Task AddRange(IEnumerable content, bool save = true); Task Add(T content); Task DeleteRange(IEnumerable req); Task Delete(T request); Task SaveChangesAsync(); IIncludableQueryable Include( IQueryable source, Expression> navigationPropertyPath) where TEntity : class; Task ExecuteSql(string sql); } }