public async Task Publish(IMessage message, string exchange) { var address = new Address(message.Command, message.Type, exchange); if (_subscriptionManager.HasSubscriptionsForAddress(address)) { if (await ProcessMessage(message, address)) { return; } else { log.LogWarning($"Message NOT processed: '{BitConverter.ToString(message.Raw)}'"); } } else { var transport = _transportManager.GetTransportByName(exchange); if (transport is null) { log.LogWarning($"{exchange} not exist in TrasnportManager"); return; } await transport.PushDataAsync(message).ConfigureAwait(false); } }