コード例 #1
0
 public void Dequeue(IReadModelWorkItem workItem)
 {
     Monitor.Enter(this.locker);
     try
     {
         const string deleteCmd = "delete from ReadModelWorkItem where Identity = ? and FromVersion = {0}";
         this.repository.Connection.Execute(string.Format(deleteCmd, workItem.FromVersion), workItem.Identity);
     }
     finally
     {
         Monitor.Exit(this.locker);
     }
 }
コード例 #2
0
 public void Dequeue(IReadModelWorkItem workItem)
 {
     Monitor.Enter(this.locker);
     try
     {
         const string deleteCmd = "delete from ReadModelWorkItem where Identity = ? and FromVersion = {0}";
         this.repository.Connection.Execute(string.Format(deleteCmd, workItem.FromVersion), workItem.Identity);
     }
     finally
     {
         Monitor.Exit(this.locker);
     }
 }
コード例 #3
0
        private void ProcessWorkItem(IUnitOfWorkScope scope, IAggregateRegistration registration, IDomainNotificationBus bus, IReadModelWorkItem workItem)
        {
            var eventScope = this.context.BeginUnitOfWork();

            using (eventScope)
            {
                var events   = eventScope.GetRegisteredObject <IEventStore>().GetEventsAfterVersion(workItem.Identity, workItem.FromVersion - 1).ToList();
                var builders = registration.DelayedReadModels(scope);
                foreach (var builder in builders)
                {
                    if (workItem.FromVersion == 0)
                    {
                        builder.DeleteForAggregate(workItem.Identity);
                    }

                    // we need to get the events from the event store
                    var builderEvents = builder.Process(events);
                    foreach (var evt in builderEvents)
                    {
                        bus.Publish(evt);
                    }
                }
            }
        }
コード例 #4
0
        private void ProcessWorkItem(IUnitOfWorkScope scope, IAggregateRegistration registration, IDomainNotificationBus bus, IReadModelWorkItem workItem)
        {
            var eventScope = this.context.BeginUnitOfWork();
            using (eventScope)
            {
                var events = eventScope.GetRegisteredObject<IEventStore>().GetEventsAfterVersion(workItem.Identity, workItem.FromVersion - 1).ToList();
                var builders = registration.DelayedReadModels(scope);
                foreach (var builder in builders)
                {
                    if (workItem.FromVersion == 0)
                    {
                        builder.DeleteForAggregate(workItem.Identity);
                    }

                    // we need to get the events from the event store
                    var builderEvents = builder.Process(events);
                    foreach (var evt in builderEvents)
                    {
                        bus.Publish(evt);
                    }
                }
            }
        }