using System.Linq.Expressions; namespace DigitalData.Core.Abstractions.Infrastructure; public interface IRepository { public Task CreateAsync(TEntity entity, CancellationToken ct = default); public Task> CreateAsync(IEnumerable entities, CancellationToken ct = default); public Task CreateAsync(TDto dto, CancellationToken ct = default); public Task> CreateAsync(IEnumerable dtos, CancellationToken ct = default); public Task> ReadAsync(Expression>? expression = null, CancellationToken ct = default); public Task UpdateAsync(TDto dto, Expression> expression, CancellationToken ct = default); public Task DeleteAsync(Expression> expression, CancellationToken ct = default); Task ReadAsync(Core.Tests.Mock.User user); }