public IActionResult Index(string id) { if (string.IsNullOrWhiteSpace(id)) { return(View("Index", new ChatChannelsViewModel() { ChatChannels = _chatChannelRepository.GetAll() })); } else { return(View("Channel", new ChatChannelViewModel() { Channel = id, Messages = _chatMessageRepository.GetByChannel(id) })); } }
public async Task ConsumeAsync() { _consumer.Subscribe(_chatChannelRepository.GetAll()); try { while (true) { using (CancellationTokenSource cts = new CancellationTokenSource()) { Console.CancelKeyPress += (_, e) => { e.Cancel = true; cts.Cancel(); }; try { var cr = _consumer.Consume(cts.Token); var message = JsonConvert.DeserializeObject <ChatMessageSentMessage>(cr.Value); Console.WriteLine(message.ToJsonString()); await _messageSentMessageHandler.Handle(message); } catch (ConsumeException e) { Console.WriteLine($"Error occured: {e.Error.Reason}"); } }; } } catch (OperationCanceledException) { _consumer.Close(); } }