using System.Linq.Expressions; namespace DigitalData.Core.Abstractions.Infrastructure; public interface IRepository { public IEntityMapper Mapper { get; } public Task CreateAsync(TEntity entity, CancellationToken ct = default); public Task> CreateAsync(IEnumerable entities, CancellationToken ct = default); public Task> ReadAllAsync(Expression>? expression = null, CancellationToken ct = default); public Task ReadOrDefaultAsync(Expression> expression, bool single = true, CancellationToken ct = default); public Task> ReadAllAsync(Expression>? expression = null, CancellationToken ct = default); public Task ReadOrDefaultAsync(Expression> expression, bool single = true, CancellationToken ct = default); public Task UpdateAsync(TDto dto, Expression> expression, CancellationToken ct = default); public Task DeleteAsync(Expression> expression, CancellationToken ct = default); }