public void Apply(IDocumentSession session, EventStream[] streams) { foreach (var stream in streams) foreach (var @event in stream.Events.OfType<Event<SessionCreated>>()) { var sessionCreated = @event.Data; var clientModel = session.Load<ClientModel>(sessionCreated.ClientId); clientModel.Apply(sessionCreated); } }
public void version_method_applies_in_the_right_order() { var stream = new EventStream(Guid.NewGuid(), false); stream.Add(new MembersJoined()); stream.Add(new MembersJoined()); stream.Add(new MembersDeparted()); stream.ApplyLatestVersion(8); stream.Events.ElementAt(0).Version.ShouldBe(6); stream.Events.ElementAt(1).Version.ShouldBe(7); stream.Events.ElementAt(2).Version.ShouldBe(8); }
public void Apply(IDocumentSession session, EventStream[] streams) { foreach (var stream in streams) foreach (var @event in stream.Events.Where(x => x.Data is IHaveCities)) { var organizationCreated = (IHaveCities)@event.Data; foreach (var city in organizationCreated.Cities) { if ( !session.Query<City>() .Any(c => c.Name.Equals(city, StringComparison.OrdinalIgnoreCase))) { session.Store(new City { Id = Guid.NewGuid(), Name = city }); } } } }
public void Apply(IDocumentSession session, EventStream[] streams) { foreach (var stream in streams) foreach (var @event in stream.Events.Where(x => x.Data is IHaveSuburbs)) { IHaveSuburbs data = (IHaveSuburbs)@event.Data; foreach (var suburbName in data.Suburbs) { if ( !session.Query<Suburb>() .Any(suburb => suburb.Name.Equals(suburbName, StringComparison.OrdinalIgnoreCase))) { session.Store(new Suburb { Id = Guid.NewGuid(), Name = suburbName }); } } } }
public Task ApplyAsync(IDocumentSession session, EventStream[] streams, CancellationToken token) { Apply(session, streams); return Task.CompletedTask; }
public EventStreamVersioningCallback(EventStream stream) { _stream = stream; }