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); } }
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); } } } }
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); } } } }