public async Task<bool> HandleAsync(DurableOrchestrationContext context, CancellationToken cancellationToken = default)
		{
			var events = context.GetInput<IList<EventGridEvent>>();

			foreach (var @event in events)
			{
				var handlers = EventTypeHandlerMapping.GetEventHandlers(@event.EventType);

				if (handlers?.Count > 0)
				{
					var tasks = new List<Task>();

					foreach (var handler in handlers)
					{
						tasks.Add(context.CallActivityAsync(handler, @event.Data));
					}
					
					await Task.WhenAll(tasks);
				}
			}

			return true;
		}
示例#2
0
 public IEventWebhookHandler Convert(ServerlessCqrsEventWebhookHandlerAttribute attribute)
 {
     EventTypeHandlerMapping.InitializedMapping();
     return(new EventWebhookHandler(attribute));
 }