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); }
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)); } }