public Task StartAsync(CancellationToken cancellationToken) { _consumer = new EventingBasicConsumer(_channel); _consumer.Received += (sender, args) => { var triggerValue = new RabbitQueueTriggerValue { MessageBytes = args.Body }; if (args.BasicProperties != null) { triggerValue.MessageId = args.BasicProperties.MessageId; triggerValue.ApplicationId = args.BasicProperties.AppId; triggerValue.ContentType = args.BasicProperties.ContentType; triggerValue.CorrelationId = args.BasicProperties.CorrelationId; triggerValue.Headers = args.BasicProperties.Headers; } var result = _executor.TryExecuteAsync(new TriggeredFunctionData { TriggerValue = triggerValue }, CancellationToken.None).Result; if (result.Succeeded) { _channel.BasicAck(args.DeliveryTag, false); } else { _channel.BasicNack(args.DeliveryTag, false, false); } }; _consumerTag = _channel.BasicConsume(_queueName, false, _consumer); return(Task.FromResult(true)); }
private IReadOnlyDictionary <string, object> GetBindingData(RabbitQueueTriggerValue value) { var bindingData = new Dictionary <string, object>(StringComparer.OrdinalIgnoreCase) { { "RabbitQueueTrigger", value } }; return(bindingData); }
public RabbitQueueValueBinder(ParameterInfo parameter, RabbitQueueTriggerValue value) : base(parameter.ParameterType) { _value = value; }