public AggregateStorageFactory(StorageFactory primaryStorageFactory, StorageFactory[] secondaryStorageFactories, AggregateStorage.WriteSecondaryStorageContentInterceptor writeSecondaryStorageContentInterceptor) { _primaryStorageFactory = primaryStorageFactory; _secondaryStorageFactories = secondaryStorageFactories; _writeSecondaryStorageContentInterceptor = writeSecondaryStorageContentInterceptor; BaseAddress = _primaryStorageFactory.BaseAddress; }
protected AggregateStorageFactory CreateWithInterceptor(AggregateStorage.WriteSecondaryStorageContentInterceptor interceptor, MemoryStorage primaryStorage, MemoryStorage secondaryStorage, params MemoryStorage[] storages) { var storageFactories = new List<StorageFactory>(); storageFactories.Add(new TestStorageFactory(name => primaryStorage.WithName(name))); storageFactories.Add(new TestStorageFactory(name => secondaryStorage.WithName(name))); foreach (var storage in storages) { storageFactories.Add(new TestStorageFactory(name => storage.WithName(name))); } return new AggregateStorageFactory(storageFactories.First(), storageFactories.Skip(1).ToArray(), interceptor); }