/// <summary> /// Send a <paramref name="request "/>on the specified <paramref name="connector"/> /// and await a response /// </summary> public IGraphable SendReceive(ISendReceiveConnector connector, IGraphable request) { // Ensure the connector is open if (!connector.IsOpen()) connector.Open(); // Send the request ISendResult sendResult = connector.Send(request); // Was the send successful? if (sendResult.Code != ResultCode.Accepted && sendResult.Code != ResultCode.AcceptedNonConformant) return null; // Await the response IReceiveResult receiveResult = connector.Receive(sendResult); // Debug information #if DEBUG foreach (var itm in receiveResult.Details) Trace.WriteLine(String.Format("{0}: {1} @ {2}", itm.Type, itm.Message, itm.Location)); #endif // Structure return receiveResult.Structure; }
/// <summary> /// Send a <paramref name="request "/>on the specified <paramref name="connector"/> /// and await a response /// </summary> public IGraphable SendReceive(ISendReceiveConnector connector, IGraphable request) { // Ensure the connector is open if (!connector.IsOpen()) { connector.Open(); } // Send the request ISendResult sendResult = connector.Send(request); // Was the send successful? if (sendResult.Code != ResultCode.Accepted && sendResult.Code != ResultCode.AcceptedNonConformant) { return(null); } // Await the response IReceiveResult receiveResult = connector.Receive(sendResult); // Debug information #if DEBUG foreach (var itm in receiveResult.Details) { Trace.WriteLine(String.Format("{0}: {1} @ {2}", itm.Type, itm.Message, itm.Location)); } #endif // Structure return(receiveResult.Structure); }