コード例 #1
0
        public static void StoreEvent <TEvent>(this IEventSession session, Action <TEvent> eventIntialiser, EventStreamId id, ILocalMachine localMachine)
            where TEvent : new()
        {
            var @event = new TEvent();

            eventIntialiser(@event);
            session.StoreEvent(@event, id, localMachine);
        }
コード例 #2
0
 public static void StoreEvent <TEvent>(this IEventSession session, TEvent @event, EventStreamId id, ILocalMachine localMachine)
     where TEvent : new()
 {
     session.StoreEvent(new SourcedEvent {
         Body = @event
     }, id);
     session.StoreHeader(id, EventOriginHeader.Key, EventOriginHeader.ForMachine(localMachine));
 }
コード例 #3
0
        void OnDuplicateCommitButtonClick(object sender, EventArgs eventArgs)
        {
            Guid commitId = Guid.NewGuid();
            var  factory  = container.Resolve <IEventSessionFactory>();

            IEventSession session = factory.Create();

            session.StoreEvent(new SourcedEvent {
                Body = new TestEvent()
            }, new EventStreamId("Test", "Test"));
            session.Commit(commitId);
            session.Commit(commitId);
        }
コード例 #4
0
        public void Save <TAggregateRoot>(TAggregateRoot aggregateRoot)
            where TAggregateRoot : AggregateRoot
        {
            using (IEventSession eventSession = eventSessionFactory.Create())
            {
                foreach (SourcedEvent @event in aggregateRoot.EventsAdded)
                {
                    EventStreamId eventStreamId = aggregateRoot.GetEventStreamId();

                    eventSession.StoreEvent(@event, eventStreamId);
                    eventSession.StoreHeader(eventStreamId, EventOriginHeader.Key, EventOriginHeader.ForMachine(localMachine));
                }

                eventSession.Commit(Guid.NewGuid());
            }
        }
コード例 #5
0
 public static IEnumerable <SynchronisableCommit> GetSynchronisableCommits(
     this IEventSession session,
     string bucketId,
     DateTime @from,
     Func <Commit, bool> commitsWhereClause)
 {
     return(session
            .AllCommitsFrom(bucketId, @from)
            .Where(commitsWhereClause)
            .Select(commit => new SynchronisableCommit
     {
         CommitId = commit.CommitId,
         StreamId = new SynchronisableEventStreamId {
             ClientId = commit.BucketId, Id = commit.StreamId
         },
         CreatedOn = commit.CreatedOn,
         Headers = commit.GetCommitHeaders(),
         Events = commit.GetSynchronisableEvents()
     }));
 }
コード例 #6
0
 public static void StoreEventAndCommit <TEvent>(this IEventSession session, TEvent @event, EventStreamId id, ILocalMachine localMachine)
     where TEvent : new()
 {
     session.StoreEvent(@event, id, localMachine);
     session.Commit(Guid.NewGuid());
 }
コード例 #7
0
 public void GivenIHaveCreatedANewEventSession()
 {
     session = context.SessionFactory.Create();
 }