public override Task OnDisconnectedAsync(Exception exception) { string clientConnectionId = Context.ConnectionId; Producer producerToRemove = producerHubRepository.GetProducerById(clientConnectionId); // When the producer with the same name try to connect more than one. if (producerToRemove != null) { storageHubService.DisconnectProducerAsync(producerToRemove); producerHubRepository.RemoveProducer(clientConnectionId); logger.LogInformation($"Producer '{producerToRemove.ProducerName}' at {producerToRemove.Tenant}/{producerToRemove.Product}/{producerToRemove.Component}/{producerToRemove.Topic} is disconnected"); Clients.Caller.ProducerDisconnected(new Model.Producers.Events.ProducerDisconnectedDetails() { Id = producerToRemove.Id }); } return(base.OnDisconnectedAsync(exception)); }
public ActionResult <Producer> GetProducers(string connectionId) { var isFromCli = HttpContext.Request.Headers["x-called-by"].ToString(); if (isFromCli != "") { _logger.LogInformation($"{isFromCli} GET '{HttpContext.Request.Path}' is called"); } else { _logger.LogInformation($"GET '{HttpContext.Request.Path}' is called"); } var consumer = _producerHubRepository.GetProducerById(connectionId); if (consumer == null) { return(NotFound()); } return(Ok(consumer)); }