public IActionResult WithdrawMoney(WithdrawMoneyRequest request) { Account account = new Account(_eventStore.GetEvents()); var result = account.WithdrawMoney(request.Amount); if (result.IsFailure) { return(BadRequest(result.Error.ErrorMessage)); } _eventStore.AddEvents(account.Changes); return(Ok(result.Value)); }
public void PlayTick(TickNumber tick) { // Retrieve external events List <IEvent> events = EventEmitter.Events; EventStore.AddEvents(tick + 2, events); EventEmitter.Retrieved(); RunTick(tick); }
public void EventStore_AddEventsToExistingListAppendsThem() { var guid = Guid.NewGuid(); var store = new EventStore(); store.AddEvents(guid, new List <IEvent> { new TestEvent("1"), new TestEvent("2") }); store.AddEvents(guid, new List <IEvent> { new TestEvent("3") }); var events = store.GetEvents(guid); Assert.Equal(3, events.Count()); Assert.Equal("1", ((TestEvent)events.ElementAt(0)).Text); Assert.Equal("2", ((TestEvent)events.ElementAt(1)).Text); Assert.Equal("3", ((TestEvent)events.ElementAt(2)).Text); }
public void EventStore_AddEventsToEmptyListInitialisesIt() { var guid = Guid.NewGuid(); var store = new EventStore(); store.AddEvents(guid, new List <IEvent> { new TestEvent(), new TestEvent(), }); var events = store.GetEvents(guid); Assert.Equal(2, events.Count()); }
public async Task AddEvents() { var eventStore = new EventStore(); var testEvent1 = new TestEvent { StreamId = "1", Data = "Initial" }; var testEvent2 = new AnotherTestEvent { StreamId = "1", Data = "Updated" }; await eventStore.AddEvents("1", new EventStoreEvent[] { testEvent1, testEvent2 }); var eventStream = await eventStore.GetEvents("1"); eventStream.Count().Should().Be(2, "should retrieve all events in the stream"); }
public async Task GetEventsBySequence() { var eventStore = new EventStore(); var testEvent1 = new TestEvent { StreamId = "1", Data = "Initial" }; var testEvent2 = new AnotherTestEvent { StreamId = "1", Data = "Updated" }; var testEvent3 = new AnotherTestEvent { StreamId = "1", Data = "Updated 2" }; var testEvent4 = new AnotherTestEvent { StreamId = "1", Data = "Updated 3" }; await eventStore.AddEvents("1", new EventStoreEvent[] { testEvent1, testEvent2, testEvent3, testEvent4 }); var eventStream = (await eventStore.GetEvents("1", 2)).ToArray(); eventStream.Count().Should().Be(2, "should retrieve only events >= sequence"); eventStream.First().Sequence.Should().Be(2, "should return the event with sequence == 2"); eventStream.Skip(1).First().Sequence.Should().Be(3, "should return the event with sequence == 3"); }
public void SayThereIsNoSpoon() => EventStore.AddEvents(new IEvent[] { new ThereIsNoSpoonEvent() });
public void SayMerryChristmas() => EventStore.AddEvents(new IEvent[] { new MerryChristmasDomainEvent(), new MerryChristmasIntegrationEvent() });
public void SayHello() => EventStore.AddEvents(new IEvent[] { new HelloWorldDomainEvent(), new HelloWorldIntegrationEvent(), });