public async ValueTask Execute(IPublisherContext context) { try { await _pipeline.Execute(context); } catch (Exception e) { _logger.LogError(e, context.Message.ToString()); } }
public async ValueTask StartAsync(IConsumerDefinition definition, IConsumerPipelineFactory pipelineFactory) { var topologyDefinition = _topology.BuildFrom(definition); _processor = await _client.BuildProcessorAsync(topologyDefinition); _sender = await _client.BuildSenderAsync(topologyDefinition); _processor.ProcessMessageAsync += async e => { var message = new DefaultServiceBusMessage(e.Message.Body); var context = new DefaultConsumerContext(message, definition); var azureContext = new AzureConsumerContext(context, e, _bus, _sender); var pipeline = pipelineFactory.Create(null); await pipeline.Execute(azureContext); }; _processor.ProcessErrorAsync += e => { _logger.LogError(e.Exception, e.ToString()); return(Task.CompletedTask); }; await _processor.StartProcessingAsync(); }