public when_using_listener_start_with_event_type(StreamStoreConnectionFixture fixture) { var streamNameBuilder = new PrefixedCamelCaseStreamNameBuilder(); var conn = fixture.Connection; conn.Connect(); var originalAggregateStream = streamNameBuilder.GenerateForAggregate( typeof(TestAggregate), Guid.NewGuid()); var evt = new EventProjectionTestEvent(); //drop the event into the stream var result = conn.AppendToStream( originalAggregateStream, ExpectedVersion.NoStream, null, _eventSerializer.Serialize(evt)); Assert.True(result.NextExpectedVersion == 0); //wait for the projection to be written CommonHelpers.WaitForStream(conn, streamNameBuilder.GenerateForEventType(nameof(EventProjectionTestEvent))); //build the listener StreamListener listener = new SynchronizableStreamListener( "event listener", conn, streamNameBuilder, _eventSerializer); listener.EventStream.Subscribe(new AdHocHandler <EventProjectionTestEvent>(Handle)); listener.Start(typeof(EventProjectionTestEvent)); }
static EventStoreHelper() { var settings = CommonHelper.GetConfig().GetSection("eventStore"); var userCredentials = new ReactiveDomain.UserCredentials( username: settings["ESUserId"], password: settings["ESPassword"]); var eventStoreLoader = new EventStoreLoader(); eventStoreLoader.Connect( credentials: userCredentials, server: IPAddress.Parse(settings["ESipAddress"]), tcpPort: int.Parse(settings["ESTcpPort"])); var streamNameBuilder = new PrefixedCamelCaseStreamNameBuilder(Constants.DomainPrefix); GetListener = name => new StreamListener( listenerName: name, eventStoreConnection: eventStoreLoader.Connection, streamNameBuilder: streamNameBuilder, serializer: new JsonMessageSerializer()); GetRepository = () => new StreamStoreRepository( streamNameBuilder: streamNameBuilder, eventStoreConnection: eventStoreLoader.Connection, eventSerializer: new JsonMessageSerializer()); }
public EventStoreFixture() { _node = EmbeddedVNodeBuilder .AsSingleNode() .OnDefaultEndpoints() .RunInMemory() .DisableDnsDiscovery() .DisableHTTPCaching() //.DisableScavengeMerging() .DoNotVerifyDbHashes() .Build(); _node.StartAndWaitUntilReady().Wait(); var conns = ConnectionSettings.Create() .SetDefaultUserCredentials(new EventStore.ClientAPI.SystemData.UserCredentials("admin", "changeit")) .Build(); var eventStoreConnection = EmbeddedEventStoreConnection.Create(_node, conns); StreamStoreConnection = new EventStoreConnectionWrapper(eventStoreConnection); EventSerializer = new JsonMessageSerializer(); StreamNameBuilder = new PrefixedCamelCaseStreamNameBuilder("masterdata"); _repo = new StreamStoreRepository(StreamNameBuilder, StreamStoreConnection, EventSerializer); }
public void Bootstrap() { IEventStoreConnection esConnection = EventStoreConnection.Create("ConnectTo=tcp://admin:changeit@localhost:1113"); conn = new EventStoreConnectionWrapper(esConnection); esConnection.Connected += (_, __) => Console.WriteLine("Connected"); esConnection.ConnectAsync().Wait(); IStreamNameBuilder namer = new PrefixedCamelCaseStreamNameBuilder(); IEventSerializer ser = new JsonMessageSerializer(); repo = new StreamStoreRepository(namer, conn, ser); cmdHandler = new AccountCommandHandler(repo); AccountAggregate acct = null; try { var command = new CreateAccountCommand() { AccountId = _accountId, HolderName = _holderName }; cmdHandler.Handle(command); } catch (Exception e) { } listener = new StreamListener("AccountAggregate", conn, namer, ser); _readModel = new BalanceReadModel(() => listener); }
static void Main(string[] args) { Console.WriteLine("Hello World!"); IEventStoreConnection conn = EventStoreConnection.Create("ConnectTo=tcp://admin:changeit@localhost:1113"); conn.Connected += (_, __) => Console.WriteLine("Connected"); conn.ConnectAsync().Wait(); conn.AppendToStreamAsync("Test", ExpectedVersion.Any, new[] { new EventData( Guid.NewGuid(), "TestEvent", false, Encoding.UTF8.GetBytes("Test event data"), Encoding.UTF8.GetBytes("Test event Metadata")) }); Console.WriteLine("Event Written"); var evt = conn.ReadStreamEventsForwardAsync("Test", StreamPosition.Start, 1, false).Result; Console.WriteLine(Encoding.UTF8.GetString(evt.Events[0].Event.Data)); Console.ReadKey(); return; IStreamStoreConnection streamConn = new EventStoreConnectionWrapper(conn); IStreamNameBuilder nameBuilder = new PrefixedCamelCaseStreamNameBuilder(); IEventSerializer serializer = new JsonMessageSerializer(); IRepository repo = new StreamStoreRepository(nameBuilder, streamConn, serializer); repo.Save(new Account(Guid.NewGuid())); IListener myListener = new StreamListener("Account Listener", streamConn, nameBuilder, serializer); }
public when_using_listener_start_with_category_aggregate(StreamStoreConnectionFixture fixture) { var streamNameBuilder = new PrefixedCamelCaseStreamNameBuilder(); var conn = fixture.Connection; conn.Connect(); var aggStream = streamNameBuilder.GenerateForAggregate(typeof(AggregateCategoryTestAggregate), Guid.NewGuid()); var categoryStream = streamNameBuilder.GenerateForCategory(typeof(AggregateCategoryTestAggregate)); // Drop an event into the stream testAggregate-guid var result = conn.AppendToStream( aggStream, ExpectedVersion.NoStream, null, _eventSerializer.Serialize(new TestEvent(CorrelatedMessage.NewRoot()))); Assert.True(result.NextExpectedVersion == 0); //wait for the projection to be written. CommonHelpers.WaitForStream(conn, categoryStream); // Now set up the projection listener, and start it. var listener = new SynchronizableStreamListener( "category listener", conn, streamNameBuilder, new JsonMessageSerializer()); listener.EventStream.Subscribe <TestEvent>(new AdHocHandler <TestEvent>(Handle)); listener.Start <AggregateCategoryTestAggregate>(); }
protected with_message_logging_enabled(IStreamStoreConnection connection) { Connection = connection; Bus = new Dispatcher(nameof(with_message_logging_enabled)); StreamNameBuilder = new PrefixedCamelCaseStreamNameBuilder("UnitTest"); EventSerializer = new JsonMessageSerializer(); Repo = new StreamStoreRepository(StreamNameBuilder, Connection, new JsonMessageSerializer()); // instantiate Logger class that inherits from QueuedSubscriber Logging = new EventStoreMessageLogger(Bus, Connection, StreamName, true); }
public MockRepositorySpecification() { StreamNameBuilder = new PrefixedCamelCaseStreamNameBuilder(); StreamStoreConnection = new MockStreamStoreConnection("Test"); StreamStoreConnection.Connect(); EventSerializer = new JsonMessageSerializer(); MockRepository = new StreamStoreRepository(StreamNameBuilder, StreamStoreConnection, EventSerializer); var connectorBus = new InMemoryBus("connector"); StreamStoreConnection.SubscribeToAll(evt => connectorBus.Publish((IMessage)EventSerializer.Deserialize(evt))); RepositoryEvents = new TestQueue(connectorBus, new[] { typeof(Event) }); }
public void Bootstrap() { IEventStoreConnection esConnection = EventStoreConnection.Create("ConnectTo=tcp://admin:changeit@localhost:1113"); conn = new EventStoreConnectionWrapper(esConnection); esConnection.Connected += (_, __) => Console.WriteLine("Connected"); esConnection.ConnectAsync().Wait(); IStreamNameBuilder namer = new PrefixedCamelCaseStreamNameBuilder(); IEventSerializer ser = new JsonMessageSerializer(); repo = new StreamStoreRepository(namer, conn, ser); OrderAggregate order = null; IListener listener = new StreamListener("Order", conn, namer, ser); _readModel = new OrderReadModel(() => listener); }
public AccountService() { IEventStoreConnection esConnection = EventStoreConnection.Create("ConnectTo=tcp://admin:changeit@localhost:1113"); var conn = new EventStoreConnectionWrapper(esConnection); esConnection.Connected += (_, __) => { }; //Console.WriteLine("Connected"); esConnection.ConnectAsync().Wait(); IStreamNameBuilder namer = new PrefixedCamelCaseStreamNameBuilder(); IEventSerializer ser = new JsonMessageSerializer(); _repo = new StreamStoreRepository(namer, conn, ser); _cmdHandler = new AccountCommandHandler(_repo); var listener = new StreamListener("AccountAggregate", conn, namer, ser); _readModel = new BalanceReadModel(() => listener); }
protected AccountTestsBase() { AccountId = Guid.NewGuid(); IEventStoreConnection esConnection = EventStoreConnection.Create("ConnectTo=tcp://admin:changeit@localhost:1113"); var conn = new EventStoreConnectionWrapper(esConnection); esConnection.Connected += (_, __) => { }; esConnection.ConnectAsync().Wait(); IStreamNameBuilder namer = new PrefixedCamelCaseStreamNameBuilder("Tests"); IEventSerializer ser = new JsonMessageSerializer(); Repo = new StreamStoreRepository(namer, conn, ser); CmdHandler = new AccountCommandHandler(Repo); var listener = new StreamListener("AccountAggregate", conn, namer, ser); ReadModel = new BalanceReadModel(() => listener); }
public StreamStoreReadTests(StreamStoreConnectionFixture fixture) { IStreamNameBuilder streamNameBuilder = new PrefixedCamelCaseStreamNameBuilder("UnitTest"); var mockStreamStore = new MockStreamStoreConnection("Test"); mockStreamStore.Connect(); _stores.Add(mockStreamStore); _stores.Add(fixture.Connection); _streamName = streamNameBuilder.GenerateForAggregate(typeof(TestAggregate), Guid.NewGuid()); var eventCount = 10; foreach (var store in _stores) { AppendEvents(eventCount, store, _streamName); } _lastEvent = eventCount - 1; }
public void Bootstrap() { IEventStoreConnection esConnection = EventStoreConnection.Create("ConnectTo=tcp://admin:changeit@localhost:1113"); conn = new EventStoreConnectionWrapper(esConnection); esConnection.Connected += (_, __) => Console.WriteLine("Connected"); esConnection.ConnectAsync().Wait(); IStreamNameBuilder namer = new PrefixedCamelCaseStreamNameBuilder(); IEventSerializer ser = new JsonMessageSerializer(); repo = new StreamStoreRepository(namer, conn, ser); Account acct = null; try { repo.Save(new Account(_accountId)); } catch (Exception e) { } IListener listener = new StreamListener("Account", conn, namer, ser); _readModel = new BalanceReadModel(() => listener, _accountId); }