using AutoMapper; using System.Linq.Expressions; namespace DigitalData.Core.Abstraction.Application.Repository; public interface IRepository { public IMapper Mapper { get; } public Task CreateAsync(TEntity entity, CancellationToken cancel = default); public Task> CreateAsync(IEnumerable entities, CancellationToken cancel = default); public IQueryable Where(Expression> expression); public IEnumerable GetAll(); public Task> GetAllAsync(CancellationToken cancel = default); public Task UpdateAsync(TDto dto, Expression> expression, CancellationToken cancel = default); public Task UpdateAsync(TDto dto, Func, IQueryable> query, CancellationToken cancel = default); public Task DeleteAsync(Expression> expression, CancellationToken cancel = default); public Task DeleteAsync(Func, IQueryable> query, CancellationToken cancel = default); #region Obsolete [Obsolete("Use CreateAsync, UpdateAsync or DeleteAsync")] public IQueryable Read(); [Obsolete("Use IRepository.Where")] public IQueryable ReadOnly(); #endregion } public interface IRepository { public IRepository Entity() where TEntity : IEntity; }