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);
                }
        }
예제 #2
0
        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);
        }
예제 #3
0
        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 });
                        }
                    }


                }
        }
예제 #4
0
        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;
 }
예제 #7
0
 public EventStreamVersioningCallback(EventStream stream)
 {
     _stream = stream;
 }