//
        // GET: /Relay/

        public ActionResult Index(TwilioRequestViewModel vm)
        {
            var cf = new ChannelFactory <IAzureTunnelServiceChannel>("relay");

            using (var ch = cf.CreateChannel())
            {
                vm.Method = Request.HttpMethod;

                string result = ch.Relay(vm);
                return(Content(result, "application/xml"));
            }
        }
        public string Relay(TwilioRequestViewModel vm)
        {
            StringBuilder paramList = new StringBuilder();
            var props = vm.GetType().GetProperties();
            foreach (var prop in props)
            {
                string param = string.Format("{0}={1}&", prop.Name, prop.GetValue(vm, new object[] { }));
                paramList.Append(param);
            }

            HttpWebRequest request = null;
            switch (vm.Method)
            {
                case "POST":
                    request = (HttpWebRequest)HttpWebRequest.Create("http://localhost:46622/Sms/Index");
                    request.Method = vm.Method;

                    var requeststream = request.GetRequestStream();

                    byte[] bytes = System.Text.ASCIIEncoding.Default.GetBytes(paramList.ToString());
                    requeststream.Write(bytes, 0, bytes.Length);
                    break;

                case "GET":
                    request = (HttpWebRequest)HttpWebRequest.Create(string.Format("{0}?{1}", "http://localhost:46622/Sms/Index", paramList.ToString()));
                    request.Method = vm.Method;
                    break;
            }

            var response = request.GetResponse();
            using (StreamReader reader = new StreamReader(response.GetResponseStream()))
            {
                string result = String.Empty;
                try
                {
                    result = reader.ReadToEnd();
                }
                catch (Exception exc) {
                    Debug.WriteLine(exc.Message);
                }

                Debug.WriteLine(result);

                return result;
            }



        }
        public string Relay(TwilioRequestViewModel vm)
        {
            StringBuilder paramList = new StringBuilder();
            var props = vm.GetType().GetProperties();
            foreach (var prop in props)
            {
                string param = string.Format("{0}={1}&", prop.Name, prop.GetValue(vm, new object[] { }));
                paramList.Append(param);
            }

            HttpWebRequest request = null;
            switch (vm.Method)
            {
                case "POST":
                    request = (HttpWebRequest)HttpWebRequest.Create("http://localhost:46622/Sms/Index");
                    request.Method = vm.Method;

                    var requeststream = request.GetRequestStream();

                    byte[] bytes = System.Text.ASCIIEncoding.Default.GetBytes(paramList.ToString());
                    requeststream.Write(bytes, 0, bytes.Length);
                    break;

                case "GET":
                    request = (HttpWebRequest)HttpWebRequest.Create(string.Format("{0}?{1}", "http://localhost:46622/Sms/Index", paramList.ToString()));
                    request.Method = vm.Method;
                    break;
            }

            var response = request.GetResponse();
            using (StreamReader reader = new StreamReader(response.GetResponseStream()))
            {
                string result = String.Empty;
                try
                {
                    result = reader.ReadToEnd();
                }
                catch (Exception exc) {
                    Debug.WriteLine(exc.Message);
                }

                Debug.WriteLine(result);

                return result;
            }
        }