예제 #1
0
 private void When(MeterRegistered @event)
 {
     MeterId         = @event.MeterId;
     PostalCode      = @event.PostalCode;
     HouseNumber     = @event.HouseNumber;
     _activationCode = @event.ActivationCode;
 }
        private IEvent Map(MeterRegistered e)
        {
            var retVal = new MonitorRegistered(e.MeterId, e.PostalCode, e.HouseNumber, e.ActivationCode);

            retVal.Timestamp = e.Timestamp;
            return(retVal);
        }
예제 #3
0
        public async Task SC01_CreateStreamAsync()
        {
            IEventStore eventStore =
                new CosmosEventStore(this, EndpointUrl, AuthorizationKey, DatabaseId, _eventsContainerId);

            var meterRegistered = new MeterRegistered
            {
                MeterId        = "87000001",
                PostalCode     = "1000 AA",
                HouseNumber    = "25",
                ActivationCode = "542-484"
            };

            var meterActivated = new MeterActivated();

            // 1. Add a new stream.
            var streamId = $"meter:{meterRegistered.MeterId}";

            var succes = await eventStore.AppendToStreamAsync(
                streamId,
                0,
                new IEvent[] { meterRegistered, meterActivated });

            Assert.IsTrue(succes, "Unexpected stream version encountered.");
        }
 private void WhenMeterRegistered(MeterRegistered e, MeterProjection view)
 {
     view.MeterId      = e.MeterId;
     view.PostalCode   = e.PostalCode;
     view.HouseNumber  = e.HouseNumber;
     view.IsActivated  = false; // Not active until it is activated.
     view.IsRegistered = true;
 }
        private EventWrapper Transformer(MeterRegistered e, EventWrapper original)
        {
            var newStreamId = ReplaceMeterWithMonitor(original.StreamInfo.Id);
            var newEntityId = ReplaceMeterWithMonitor(e.MeterId);
            var newEventId  = $"{newStreamId}:{original.StreamInfo.Version}";

            var newEvent = new MonitorRegistered(newEntityId, e.PostalCode, e.HouseNumber, e.ActivationCode);

            newEvent.Timestamp = e.Timestamp;

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

            return(expectedValue);
        }
예제 #6
0
        public async Task SC01_StreamsAsync()
        {
            var eventStore = new CosmosDBEventStore(EndpointUri, AuthKey, Database);

            var meterRegistered = new MeterRegistered
            {
                MeterId        = "1",
                PostalCode     = "1852ER",
                HouseNumber    = "25",
                ActivationCode = "supersecret"
            };

            var meterActivated = new MeterActivated();

            // 1. Add a new stream.
            var streamId = $"meter:{meterRegistered.MeterId}";

            var succes = await eventStore.AppendToStreamAsync(
                streamId,
                0,
                new IEvent[] { meterRegistered, meterActivated });

            Assert.IsTrue(succes, "Unexpected stream version encountered.");
        }