using System.Linq.Expressions; namespace DigitalData.Core.Abstraction.Application.Repository; public interface IRepository { public IEntityMapper Mapper { get; } public Task CreateAsync(TEntity entity, CancellationToken cancellation = default); public Task> CreateAsync(IEnumerable entities, CancellationToken cancellation = default); public IReadQuery Read(params Expression>[] expressions); public Task UpdateAsync(TDto dto, Expression> expression, CancellationToken cancellation = default); public Task DeleteAsync(Expression> expression, CancellationToken cancellation = default); #region Obsolete [Obsolete("Use Read-method returning IReadQuery instead.")] public Task> ReadAllAsync(Expression>? expression = null, CancellationToken cancellation = default); [Obsolete("Use Read-method returning IReadQuery instead.")] public Task ReadOrDefaultAsync(Expression> expression, bool single = true, CancellationToken cancellation = default); [Obsolete("Use Read-method returning IReadQuery instead.")] public Task> ReadAllAsync(Expression>? expression = null, CancellationToken cancellation = default); [Obsolete("Use Read-method returning IReadQuery instead.")] public Task ReadOrDefaultAsync(Expression> expression, bool single = true, CancellationToken cancellation = default); #endregion }