Ejemplo n.º 1
0
        public bool ProcessEvent(
            string partition, CheckpointTag eventPosition, string category, ResolvedEvent data, out string newState,
            out EmittedEvent[] emittedEvents)
        {
            if (!data.EventStreamId.StartsWith(UserStreamPrefix))
            {
                throw new InvalidOperationException(
                          string.Format(
                              "Invalid stream name: '{0}' The IndexUsersProjectionHandler cannot handle events from other streams than named after the '$user-' pattern",
                              data.EventStreamId));
            }

            var loginName = data.EventStreamId.Substring(UserStreamPrefix.Length);

            var userData = data.Data.ParseJson <UserData>();

            if (userData.LoginName != loginName)
            {
                throw new InvalidOperationException(
                          string.Format(
                              "Invalid $UserCreated event found.  '{0}' login name expected, but '{1}' found", loginName,
                              userData.LoginName));
            }

            emittedEvents = new EmittedEvent[]
            { new EmittedDataEvent(UsersStream, Guid.NewGuid(), UserEventType, loginName, null, eventPosition, null) };
            newState = "";
            return(true);
        }
        public void emit_events_writes_event_with_correct_expected_tag()
        {
            var eventWriter = new FakeEventWriter();

            _updateManager.EmitEvents(eventWriter);
            EmittedEvent @event = eventWriter.Writes[0][0];

            Assert.AreEqual(_zero, @event.ExpectedTag);
        }
        public void emit_events_writes_event_with_correct_caused_by_tag()
        {
            var eventWriter = new FakeEventWriter();

            _updateManager.EmitEvents(eventWriter);
            EmittedEvent @event = eventWriter.Writes[0][0];

            Assert.AreEqual(_two, @event.CausedByTag);
        }
        public void emit_events_writes_correct_state_data()
        {
            var eventWriter = new FakeEventWriter();

            _updateManager.EmitEvents(eventWriter);
            EmittedEvent @event = eventWriter.Writes[0][0];

            Assert.AreEqual("[{\"state\":2}]", @event.Data);
        }
 public EventProcessedResult(
     string partition, CheckpointTag checkpointTag, PartitionStateCache.State oldState,
     PartitionStateCache.State newState, EmittedEvent[] emittedEvents)
 {
     _emittedEvents = emittedEvents;
     _oldState = oldState;
     _newState = newState;
     _partition = partition;
     _checkpointTag = checkpointTag;
 }
 public EmittedEventEnvelope(
     EmittedEvent @event, EmittedStream.WriterConfiguration.StreamMetadata streamMetadata = null)
 {
     Event          = @event;
     StreamMetadata = streamMetadata;
 }
 public EmittedEventEnvelope(
     EmittedEvent @event, EmittedStream.WriterConfiguration.StreamMetadata streamMetadata = null)
 {
     Event = @event;
     StreamMetadata = streamMetadata;
 }