public async Task SC06A_SaveSnapshotAsync()
        {
            IEventStore    eventStore    = new CosmosEventStore(this, EndpointUrl, AuthorizationKey, DatabaseId);
            ISnapshotStore snapshotStore = new CosmosSnapshotStore(EndpointUrl, AuthorizationKey, DatabaseId);

            // Request parameters.
            var meterId = "87000001";

            // Load domain object.
            var repository = new MeterRepository(eventStore);
            var meter      = await repository.LoadMeterAsync(meterId);

            var snapshot = meter.GetSnapshot();

            await snapshotStore.SaveSnapshotAsync($"meter:{meterId}", meter.Version, snapshot);
        }
        public async Task SC06C_LoadSnapshotAsync()
        {
            IEventStore    eventStore    = new CosmosEventStore(this, EndpointUrl, AuthorizationKey, DatabaseId);
            ISnapshotStore snapshotStore = new CosmosSnapshotStore(EndpointUrl, AuthorizationKey, DatabaseId);

            var repository = new MeterRepositorySnapshotDecorator(
                eventStore,
                snapshotStore,
                new MeterRepository(eventStore));

            // Request parameters.
            var meterId = "87000001";

            // Load domain object.
            var meter = await repository.LoadMeterAsync(meterId);

            Assert.AreEqual(20, meter.Version);
        }
示例#3
0
        private OrderSystemRepository GetOrderSystemRepository()
        {
            var eventTypeResolver = new EventTypeResolver();

            if (_testConfig.UseInMemoryEventStore)
            {
                var eventStore = new InMemoryEventStore(
                    eventTypeResolver,
                    new Dictionary <string, List <string> >());
                return(new OrderSystemRepository(eventStore, null));
            }
            else
            {
                var eventStore = new CosmosDBEventStore(
                    eventTypeResolver,
                    _testConfig.EventsEndpointUri,
                    _testConfig.EventsAuthKey, _testConfig.EventsDatabase, _testConfig.EventContainer);

                var snapshotStore = new CosmosSnapshotStore(_testConfig.SnapshotsEndpointUri,
                                                            _testConfig.SnapshotsAuthKey,
                                                            _testConfig.SnapshotsDatabase, _testConfig.SnapshotsContainer);
                return(new OrderSystemRepository(eventStore, snapshotStore));
            }
        }