/// <summary> /// Processes a single <see cref="CommittedEventEnvelope" /> /// </summary> /// <param name="envelope">The <see cref="CommittedEventEnvelope" />to process</param> public virtual void Process(CommittedEventEnvelope envelope) { lock (lockObject) { Console.WriteLine($"Event Processor: {_processor.Identifier.Value} Checking if can process: {envelope.Version.Major}.{envelope.Version.Minor}.{envelope.Version.Revision} - {envelope.Metadata.Artifact.Id} : {CanProcess(envelope.Version)}"); if (CanProcess(envelope.Version)) { Console.WriteLine($"Event Processor: {_processor.Identifier.Value} Processing: {envelope.Version.Major}.{envelope.Version.Minor}.{envelope.Version.Revision} - {envelope.Metadata.Artifact.Id}"); ProcessEvent(envelope); } } }
public void Process(CommittedEventEnvelope committedEventEnvelope) { try { var processor = _container.Get(_method.DeclaringType); _method.Invoke(processor, BuildParameters(committedEventEnvelope)); } catch (Exception exception) { _logger.Error(exception, "Failed processing"); throw; } }
public static SingleEventTypeEventStream ShouldBeInOrder(this SingleEventTypeEventStream eventStream) { Ensure.IsNotNull(nameof(eventStream), eventStream); eventStream.Any().ShouldBeTrue(); CommittedEventEnvelope prev = null; foreach (var evt in eventStream) { evt.CompareTo(prev).ShouldEqual(1); prev = evt; } return(eventStream); }
void Process(CommittedEventEnvelope envelope, ExecutionContext executionContext) { ConcurrentDictionary <EventProcessorId, ScopedEventProcessor> processors = null; var key = new ScopedEventProcessorKey(executionContext.Tenant, envelope.Metadata.Artifact); if (_scopedProcessors.TryGetValue(key, out processors)) { if (processors?.Values.Any() ?? false) { processors.Values.ForEach(_ => _.Process(envelope)); } } if (processors == null || processors.Count == 0) { _logger.Warning($"No Processor registered for {key}"); } }
void ProcessEvent(CommittedEventEnvelope envelope) { lock (lockObject) { _logger.Debug($"Processing {envelope.Version.ToString()} of {Key.Event.Id}"); var previousVersion = LastVersionProcessed; try { SetCurrentVersion(envelope.Version); _processor.Process(envelope); _logger.Debug($"Processed {envelope.Version.ToString()} of {Key.Event.Id}"); } catch (Exception ex) { _logger.Error($"Error Processing {envelope.Version.ToString()} of {Key.Event.Id}. Resetting to previous version. {ex.Message}"); SetCurrentVersion(previousVersion); throw; } } _logger.Debug($"Processing {envelope.Version.ToString()} of {Key.Event.Id}"); }
/// <inheritdoc/> public void Process(CommittedEventEnvelope eventEnvelope) { _invoker.Process(eventEnvelope); }
protected override object[] BuildParameters(CommittedEventEnvelope committedEventEnvelope) { object @event = _objectFactory.Build(_eventType, committedEventEnvelope.Event); return(new[] { @event, committedEventEnvelope.Metadata }); }
protected abstract object[] BuildParameters(CommittedEventEnvelope committedEventEnvelope);