public static async Task PublishAsync <T>(this IGatePublisher gatePublisher, string topicName, T gateMessage, CancellationToken cancellationToken) { topicName = topicName ?? throw new ArgumentNullException(nameof(topicName)); var message = Serializer.Serialize(gateMessage); await gatePublisher.PublishAsync(topicName, message, cancellationToken); }
public PublisherController(IGatePublisher gatePublisher, IOptions <SidecarOptions> options, ILogger <PublisherController> logger) { _gatePublisher = gatePublisher ?? throw new ArgumentNullException(nameof(gatePublisher)); _options = options.Value; _logger = logger ?? throw new ArgumentNullException(nameof(logger)); }
public static async Task <TRes> RequestAsync <TReq, TRes>(this IGatePublisher gatePublisher, string serviceName, string topicName, TReq gateRequest, int requestTimeoutInSeconds, CancellationToken cancellationToken) { serviceName = serviceName ?? throw new ArgumentNullException(nameof(serviceName)); topicName = topicName ?? throw new ArgumentNullException(nameof(topicName)); var message = Serializer.Serialize(gateRequest); var reply = await gatePublisher.RequestAsync(serviceName, topicName, message, requestTimeoutInSeconds, cancellationToken); return(Serializer.Deserialize <TRes>(reply)); }