EditorClient.Client.Request C# (CSharp) Method

Request() public method

public Request ( string message ) : string
message string
return string
        public string Request(string message)
        {
            string recieved= null;
            var correlationID = "correlationID=" + Guid.NewGuid().ToString() + "|";
            var messageToSend = correlationID + message;
            EventHandler<MessageArgs> msgHandler = (o,a) => {
                    if (a.Message.StartsWith(correlationID) && a.Message != messageToSend)
                        recieved = a.Message
                            .Substring(
                                correlationID.Length,
                                a.Message.Length - correlationID.Length);
                };
            _messageReceived += msgHandler;
            Send(messageToSend);
            var timeout = DateTime.Now;
            while (DateTime.Now.Subtract(timeout).TotalMilliseconds < 8000)
            {
                if (recieved != null)
                    break;
                Thread.Sleep(10);
            }
            _messageReceived -= msgHandler;
            return recieved;
        }

Usage Example

 public void Request(string message)
 {
     var client = new Client();
     client.Connect(Port, (s) => {});
     if (!client.IsConnected)
         return;
     var reply = client.Request(message);
     if (reply != null)
         Console.WriteLine(reply);
     client.Disconnect();
 }