public IEnumerable <News> Get() { RpcClient rpcClient = new RpcClient(); Console.WriteLine(" [x] Requesting news"); RpcDataNewsRequest requestObject = new RpcDataNewsRequest { Server = -1, Category = "", StartIndex = 0, Count = 10 }; string request = JsonSerializer.ToJsonString(requestObject); string response = rpcClient.Call(request, "rpc.getnews"); RpcDataNewsResponse rpcDataNews; try { rpcDataNews = JsonSerializer.Deserialize <RpcDataNewsResponse>(response); } catch (Exception e) { Console.WriteLine($" [.] failed to parse json: {e.Message}"); return(null); } Console.WriteLine($" [.] Got '{rpcDataNews.News}'"); rpcClient.Close(); return(rpcDataNews.News); }
private void ConsumerReceived(object model, BasicDeliverEventArgs ea) { var props = ea.BasicProperties; var replyProps = Channel.CreateBasicProperties(); replyProps.CorrelationId = props.CorrelationId; string message = Encoding.UTF8.GetString(ea.Body.ToArray()); _logger.LogInformation($" [x] request: '{message}'"); RpcDataNewsRequest request = JsonSerializer.Deserialize <RpcDataNewsRequest>(message); RpcDataNewsResponse response = new RpcDataNewsResponse() { News = _newsDbHelper.Get(request) }; string jsonObject = JsonSerializer.ToJsonString(response); _logger.LogInformation($" [x] response: '{response.News.Length}'"); byte[] body = Encoding.UTF8.GetBytes(jsonObject); Channel.BasicPublish(exchange: "", routingKey: props.ReplyTo, basicProperties: replyProps, body: body); Channel.BasicAck(deliveryTag: ea.DeliveryTag, multiple: false); }