private static async Task Send(string text)
        {
            var stopwatch = new Stopwatch();

            #region ["Send A Simple Msg"]
            Message simpleMessage = new Message
            {
                Body = StringSupport.GetBytes(text)
            };

            stopwatch.Start();
            // Send the message on the request queue.
            await mSimple.SendAsync(simpleMessage);

            stopwatch.Stop();

            Console.WriteLine("---");
            Console.WriteLine("Simple Msg: {0} ms.", stopwatch.ElapsedMilliseconds);


            #endregion


            #region ["Send Req-Resp Msg"]
            // Create a session identifyer for the response message
            string responseSessionId = Guid.NewGuid().ToString();

            // Create a message using text as the body.
            Message requestMessage = new Message
            {
                SessionId        = responseSessionId,
                Body             = StringSupport.GetBytes(text),
                ReplyToSessionId = responseSessionId
            };
            Console.WriteLine("---");
            Console.WriteLine("Sending request to RequestQueue for processing...");

            stopwatch.Start();
            // Send the message on the request queue.
            await mSender.SendAsync(requestMessage);

            // Accept a session message.
            var responseSession = await mSessionRecvr.AcceptMessageSessionAsync(responseSessionId);

            Message responseMessage = await responseSession.ReceiveAsync();

            stopwatch.Stop();

            await responseSession.CloseAsync();

            #endregion

            // Deserialise the message body to echoText.
            string echoText = StringSupport.GetString(responseMessage.Body);


            Console.WriteLine("Response rcvd from Server.");
            Console.WriteLine(echoText);
            Console.WriteLine("Req-Resp (Total) Time: {0} ms.", stopwatch.ElapsedMilliseconds);
        }
        static QueueClient InitializeReceiver()
        {
            var mSender   = new MessageSender(AccountDetails.ConnectionString, AccountDetails.ResponseQueueName);
            var mReciever = new QueueClient(AccountDetails.ConnectionString, AccountDetails.RequestQueueName, ReceiveMode.PeekLock);

            mReciever.RegisterSessionHandler(
                async(session, message, cancellationToken) =>
            {
                var stopwatch = new Stopwatch();
                stopwatch.Start();
                var sessionId = message.ReplyToSessionId;
                var body      = message.Body;

                var msg = StringSupport.GetString(body);

                string echoText = "Echo: " + msg;

                var outMsg = new Message
                {
                    Body      = StringSupport.GetBytes(echoText),
                    SessionId = sessionId
                };
                await mSender.SendAsync(outMsg);
                stopwatch.Stop();

                await session.CompleteAsync(message.SystemProperties.LockToken);
                await session.CloseAsync();


                lock (Console.Out)
                {
                    Console.ForegroundColor = ConsoleColor.Cyan;
                    Console.WriteLine("----");
                    Console.WriteLine("Message received");

                    Console.WriteLine("SessionId  = {0}", message.SessionId);
                    Console.WriteLine("MessageId  = {0}", message.MessageId);
                    Console.WriteLine("SequenceId = {0}", message.SessionId);
                    Console.WriteLine("Message    = {0}", msg);

                    Console.ResetColor();
                }
                Console.WriteLine("Time: {0} ms.", stopwatch.ElapsedMilliseconds);
                Console.WriteLine();
            },
                new SessionHandlerOptions(LogMessageHandlerException)
            {
                MessageWaitTimeout    = TimeSpan.FromSeconds(5),
                MaxConcurrentSessions = 1,
                AutoComplete          = false
            });
            return(mReciever);
        }