コード例 #1
0
 private void When(MeterReadingsCollected @event)
 {
     if (LatestReadingDate == null || @event.Date > LatestReadingDate)
     {
         LatestReadingDate = @event.Date;
     }
 }
コード例 #2
0
        private IEvent Map(MeterReadingsCollected e)
        {
            var monitorReadings =
                e.Readings.Select(t => new MonitorReading(t.Timestamp, t.Value)).ToList();
            var retVal = new MonitorReadingsCollected(e.Date, monitorReadings.ToArray());

            retVal.Timestamp = e.Timestamp;
            return(retVal);
        }
コード例 #3
0
        private EventWrapper Transformer(MeterReadingsCollected e, EventWrapper original)
        {
            var newStreamId = ReplaceMeterWithMonitor(original.StreamInfo.Id);
            var newEventId  = $"{newStreamId}:{original.StreamInfo.Version}";

            var monitorReadings =
                e.Readings.Select(x => new MonitorReading(x.Timestamp, x.Value));

            var newEvent = new MonitorReadingsCollected(e.Date, monitorReadings.ToArray());

            newEvent.Timestamp = e.Timestamp;

            var expectedValue = CreateEventWrapper(newEventId, newStreamId, original.StreamInfo.Version,
                                                   newEvent);

            return(expectedValue);
        }
コード例 #4
0
        public async Task SC02_AppendToExistingStreamAsync()
        {
            var eventStore = new CosmosDBEventStore(EndpointUri, AuthKey, Database);

            var streamId = $"meter:87000001";
            var stream   = await eventStore.LoadStreamAsync(streamId);

            var readingsCollected = new MeterReadingsCollected
            {
                Date     = DateTime.Today,
                Readings = GenerateMeterReadings(DateTime.Today).ToArray()
            };

            var succes = await eventStore.AppendToStreamAsync(
                streamId,
                stream.Version,
                new IEvent[] { readingsCollected });

            Assert.IsTrue(succes, "Unexpected stream version encountered.");
        }
コード例 #5
0
        public async Task SC02_AppendToExistingStreamAsync()
        {
            IEventStore eventStore = new CosmosEventStore(this, EndpointUrl, AuthorizationKey, DatabaseId);

            var streamId = $"meter:87000001";
            var stream   = await eventStore.LoadStreamAsync(streamId);

            var readingsCollected = new MeterReadingsCollected
            {
                Date     = new DateTime(2020, 4, 30),
                Readings = GenerateMeterReadings(new DateTime(2020, 4, 30)).ToArray()
            };

            var succes = await eventStore.AppendToStreamAsync(
                streamId,
                stream.Version,
                new IEvent[] { readingsCollected });

            Assert.IsTrue(succes, "Unexpected stream version encountered.");
        }
コード例 #6
0
 private void When(MeterReadingsCollected @event)
 {
 }
コード例 #7
0
 private void WhenReadingsCollected(MeterReadingsCollected meterReadingsCollected, DailyTotalsByWeek view)
 {
     view.Consumption[meterReadingsCollected.Date] = meterReadingsCollected.Readings.Sum(r => r.Value);
 }
コード例 #8
0
 private void WhenMeterReadingsCollected(MeterReadingsCollected e, MeterProjection view)
 {
     view.LatestReadingDate = e.Date;
 }