public static RabbitMQChannelOptionsBuilder AddRequestReply(this RabbitMQChannelOptionsBuilder builder, AcknowledgeMode acknowledgeMode, ExceptionMode exceptionMode) { RequestReplyController controller = null; builder .DeclareQueue(queueBuilder => queueBuilder .OnDeclare(queue => Task.Run(() => controller = new RequestReplyController(queue.Name))) .Subscribe(acknowledgeMode, exceptionMode, delivery => controller.OnDelivery(delivery)) ) .Map <RequestReplyModel>(model => { var context = controller.Request(model.SourceContent); model.Context = context; return(context.RequestContent); }); return(builder); }
public static RabbitMQChannelOptionsBuilder DeclareQueue(this RabbitMQChannelOptionsBuilder builder, Action <RabbitMQQueueOptionsBuilder> optionsAction) => builder.DeclareQueue( queue: "", optionsAction: optionsAction );