Ejemplo n.º 1
0
 /// <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;
     }
 }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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}");
            }
        }
Ejemplo n.º 5
0
 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);