void DispatchBatchToViewManagers(IEnumerable <IViewManager> viewManagers, IEnumerable <EventData> batch) { var context = new DefaultViewContext(_aggregateRootRepository, _domainTypeNameMapper); var eventList = batch .Select(e => _domainEventSerializer.Deserialize(e)) .ToList(); foreach (var viewManager in viewManagers) { _logger.Debug("Dispatching batch of {0} events to {1}", eventList.Count, viewManager); viewManager.Dispatch(context, eventList, _viewManagerProfiler); } }
public void Dispatch(IEventStore eventStore, IEnumerable <DomainEvent> events) { if (_stopped) { return; } try { var viewContext = new DefaultViewContext(_aggregateRootRepository, _domainTypeNameMapper); foreach (var e in events) { try { if (!ViewLocator.IsRelevant <TViewInstance>(e)) { continue; } var affectedViewIds = _viewLocator.GetAffectedViewIds(viewContext, e); foreach (var viewId in affectedViewIds) { try { var viewInstance = _views.GetOrAdd(viewId, id => _dispatcher.CreateNewInstance(id)); _dispatcher.DispatchToView(viewContext, e, viewInstance); } catch (Exception exception) { throw new ApplicationException(string.Format("An error ocurred when dispatching {0} to view with ID {1}", e, viewId), exception); } } } catch (Exception exception) { throw new ApplicationException(string.Format("Could not dispatch {0} to view(s)", e), exception); } } } catch (Exception exception) { _logger.Warn(exception, "An error occurred during event processing - the view will stop processing events!"); _stopped = true; } }
void DispatchBatchToViewManagers(IEnumerable <IViewManager> viewManagers, List <DomainEvent> eventList, Dictionary <IViewManager, Pos> positions) { foreach (var viewManager in viewManagers) { var thisParticularPosition = positions[viewManager].Position; if (thisParticularPosition >= eventList.Max(e => e.GetGlobalSequenceNumber())) { continue; } var context = new DefaultViewContext(_aggregateRootRepository, _domainTypeNameMapper, eventList); _viewContextItems.InsertInto(context.Items); _logger.Debug("Dispatching batch of {0} events to {1}", eventList.Count, viewManager); viewManager.Dispatch(context, eventList, _viewManagerProfiler); } }
void DispatchBatchToViewManagers(IEnumerable <IViewManager> viewManagers, IEnumerable <EventData> batch, Dictionary <IViewManager, Pos> positions) { var context = new DefaultViewContext(_aggregateRootRepository, _domainTypeNameMapper); var eventList = batch .Select(e => _domainEventSerializer.Deserialize(e)) .ToList(); foreach (var viewManager in viewManagers) { var thisParticularPosition = positions[viewManager].Position; if (thisParticularPosition >= eventList.Max(e => e.GetGlobalSequenceNumber())) { continue; } _logger.Debug("Dispatching batch of {0} events to {1}", eventList.Count, viewManager); viewManager.Dispatch(context, eventList, _viewManagerProfiler); } }
public void Dispatch(IEnumerable<DomainEvent> events) { var context = new DefaultViewContext(_aggregateRootRepository, _domainTypeNameMapper, events); foreach (var kvp in _viewContextItems) { context.Items[kvp.Key] = kvp.Value; } var eventList = events.ToList(); foreach (var viewManager in viewManagers) { var thisParticularPosition = viewManager.GetPosition().Result; if (thisParticularPosition >= eventList.Max(e => e.GetGlobalSequenceNumber())) continue; _logger.Debug("Dispatching batch of {0} events to {1}", eventList.Count, viewManager); viewManager.Dispatch(context, eventList, new NullProfiler()); } }
public void Dispatch(IEnumerable <DomainEvent> events) { var context = new DefaultViewContext(_aggregateRootRepository, _domainTypeNameMapper, events); foreach (var kvp in _viewContextItems) { context.Items[kvp.Key] = kvp.Value; } var eventList = events.ToList(); foreach (var viewManager in viewManagers) { var thisParticularPosition = viewManager.GetPosition().Result; if (thisParticularPosition >= eventList.Max(e => e.GetGlobalSequenceNumber())) { continue; } _logger.Debug("Dispatching batch of {0} events to {1}", eventList.Count, viewManager); viewManager.Dispatch(context, eventList, new NullProfiler()); } }