using Microsoft.Data.SqlClient; using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; using System.Text; using System.Threading.Tasks; namespace Back.Data.Contracts { public interface IAsyncRepository { IQueryable GetAll(); IQueryable TrackingGet(Expression> predicate); IQueryable Get(Expression> predicate); IQueryable Get(Expression> predicate = null, Func, IOrderedQueryable> orderBy = null, string[] includeSrings = null, bool disableTracking = true); IQueryable Get(Expression> predicate = null, Func, IOrderedQueryable> orderBy = null, List>> includes = null, bool disableTracking = true); Task AddRangeAsync(ICollection entites); Task AddAsync(T entity); T? Add(T entity); Task AddBoolResultAsync(T entity); bool AddBoolResult(T entity); Task UpdateAsync(T entity); bool Update(T entity); Task UpdateByObjAsync(T entity); T? UpdateByObj(T entity); Task UpdateRangeAsync(ICollection entites); bool UpdateRange(ICollection entites); bool Delete(T entity); Task DeleteRangeAsync(ICollection entites); Task DeleteAsync(T entity); Task> RunSP(string query, List parameters); Task ExecuteSql(string query); } }