using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; using System.Threading; using System.Threading.Tasks; namespace PoweredSoft.ObjectStorage.Core { public interface IObjectStorageCollection { string CollectionName { get; } Task> GetAllAsync(CancellationToken cancellationToken = default(CancellationToken)); Task> GetAllAsync(Expression> predicate, CancellationToken cancellationToken = default(CancellationToken)); Task GetAsync(object key, CancellationToken cancellationToken = default(CancellationToken)); Task AddAsync(TEntity entity, CancellationToken cancellationToken = default(CancellationToken)); Task DeleteAsync(TEntity entity, CancellationToken cancellationToken = default(CancellationToken)); Task UpdateAsync(TEntity entity, CancellationToken cancellationToken = default(CancellationToken)); IQueryable AsQueryable(); } }