using AutoMapper; using AutoMapper.EntityFrameworkCore; using IRaCIS.Core.Domain.Models; //using AutoMapper.EntityFrameworkCore; using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; using System.Threading; using System.Threading.Tasks; namespace IRaCIS.Core.Infra.EFCore { public interface IQueryRepository where TEntity : Entity { IQueryable Select( Expression> selector); ValueTask FindAsync(TKey id, CancellationToken cancellationToken = default); ValueTask FindAsync(object[] keyValues, CancellationToken cancellationToken); } public interface IQueryRepository : IQueryRepository where TEntity : Entity { TEntity ImageFind(Guid id, Type type); IQueryable Where(Expression> exp = null, bool isTraking = false, bool ignoreQueryFilters = false); IQueryable AsQueryable( bool ignoreQueryFilters = false); IQueryable WhereIf(bool condition, Expression> filter); IQueryable ProjectTo(IConfigurationProvider configuration, params Expression>[] membersToExpand); IQueryable ProjectTo(IConfigurationProvider configuration, IDictionary parameters, params string[] membersToExpand); IQueryable ProjectTo(IConfigurationProvider configuration, object parameters, params Expression>[] membersToExpand); } }