public AggregateStorageFactory(StorageFactory primaryStorageFactory, StorageFactory[] secondaryStorageFactories,
            AggregateStorage.WriteSecondaryStorageContentInterceptor writeSecondaryStorageContentInterceptor)
        { 
            _primaryStorageFactory = primaryStorageFactory;
            _secondaryStorageFactories = secondaryStorageFactories;
            _writeSecondaryStorageContentInterceptor = writeSecondaryStorageContentInterceptor;

            BaseAddress = _primaryStorageFactory.BaseAddress;
        }
        public AggregateStorageFactory(StorageFactory primaryStorageFactory, ICollection <StorageFactory> secondaryStorageFactories,
                                       AggregateStorage.WriteSecondaryStorageContentInterceptor writeSecondaryStorageContentInterceptor,
                                       ILogger <AggregateStorage> aggregateStorageLogger)
        {
            PrimaryStorageFactory     = primaryStorageFactory;
            SecondaryStorageFactories = secondaryStorageFactories;
            _writeSecondaryStorageContentInterceptor = writeSecondaryStorageContentInterceptor;
            _aggregateStorageLogger = aggregateStorageLogger;

            BaseAddress = PrimaryStorageFactory.BaseAddress;
        }
예제 #3
0
        public AggregateStorageFactory(
            StorageFactory primaryStorageFactory,
            StorageFactory[] secondaryStorageFactories,
            AggregateStorage.WriteSecondaryStorageContentInterceptor writeSecondaryStorageContentInterceptor,
            bool verbose)
        {
            PrimaryStorageFactory     = primaryStorageFactory;
            SecondaryStorageFactories = secondaryStorageFactories;
            _writeSecondaryStorageContentInterceptor = writeSecondaryStorageContentInterceptor;

            BaseAddress        = PrimaryStorageFactory.BaseAddress;
            DestinationAddress = PrimaryStorageFactory.DestinationAddress;
            Verbose            = verbose;
        }
        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,
                       verbose: false));
        }
        protected AggregateStorageFactory Create(MemoryStorage primaryStorage, MemoryStorage secondaryStorage, params MemoryStorage[] storages)
        {
            const AggregateStorage.WriteSecondaryStorageContentInterceptor interceptor = null;

            return(CreateWithInterceptor(interceptor, primaryStorage, secondaryStorage, storages));
        }