namespace zero.Core.Collections { public class CollectionContext : CollectionContext, ICollectionContext where T : ZeroIdEntity, new() { public IInterceptorRunner Interceptors { get; private set; } public CollectionContext(IZeroContext context, IInterceptorRunner interceptors) : base(context) { Interceptors = interceptors; } } public class CollectionContext : ICollectionContext { public IZeroStore Store { get; private set; } public IZeroContext Context { get; private set; } public IZeroOptions Options { get; private set; } public CollectionContext(IZeroContext context) { Store = context.Store; Options = context.Options; Context = context; } } public interface ICollectionContext : ICollectionContext where T : ZeroIdEntity, new() { IInterceptorRunner Interceptors { get; } } public interface ICollectionContext { IZeroStore Store { get; } IZeroContext Context { get; } IZeroOptions Options { get; } } }