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