Exemplo n.º 1
0
        public static async Task <Object> Run(
            [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequestMessage reqm, HttpRequest req,
            ILogger log)
        {
            log.LogInformation("Main Request");
            string GUID = req.Query["GUID"];

            log.LogInformation(GUID);
            Records RecordsObj = (Records) await GetRecord(GUID, new Records());



            var data = await reqm.Content.ReadAsStringAsync();

            var formValues = data.Split('&')
                             .Select(value => value.Split('='))
                             .ToDictionary(pair => Uri.UnescapeDataString(pair[0]).Replace("+", " "),
                                           pair => Uri.UnescapeDataString(pair[1]).Replace("+", " "));

            var response = new MessagingResponse()
                           .Message($"Your Message {formValues["Body"]}");
            var twiml = response.ToString();

            twiml = twiml.Replace("utf-16", "utf-8");
            var    smsBody    = formValues["Body"];
            var    smsFrom    = formValues["From"];
            var    smsID      = formValues["MessageSid"];
            var    smsDate    = DateTime.Now;
            string dateString = smsDate.ToString();
            string platform   = RecordsObj.Platform;

            log.LogInformation(platform);

            if (platform == "NWC" || platform == "nwc" || platform == "Nwc")
            {
                string NWCurl = RecordsObj.NWCurl;


                var NWCPayLoad = new
                {
                    se_number = smsFrom,
                    se_body   = smsBody
                };

                string        NWCTaskjson = JsonConvert.SerializeObject(NWCPayLoad);
                StringContent nwctaskdata = new StringContent(NWCTaskjson, Encoding.UTF8, "application/json");

                var client = new HttpClient();

                var taskresponse = await client.PostAsync(NWCurl, nwctaskdata);

                client.Dispose();

                return(RecordsObj.ReturnMessage);
            }


            if (platform == "K2" || platform == "k2")

            {
                string K2Url = RecordsObj.K2Url;
                log.LogInformation(K2Url);
                string K2User = RecordsObj.K2User;
                log.LogInformation(K2User);
                string K2Pass = RecordsObj.K2Pass;
                log.LogInformation(K2Pass);

                log.LogInformation("C# HTTP trigger function processed a request.");
                HttpClient        k2CloudClient;
                NetworkCredential k2credentials = new NetworkCredential(K2User, K2Pass);
                HttpClientHandler loginHandler  = new HttpClientHandler
                {
                    Credentials = k2credentials
                };

                k2CloudClient = new HttpClient(loginHandler, true);

                string requesturi = K2Url;

                string instanceDataJSON;
                string body   = smsBody;
                string number = smsFrom;

                DataFields myDF = new DataFields();
                myDF.Body   = body;
                myDF.Number = number;


                WorkflowInstance myInstance = new WorkflowInstance()
                {
                    Folio      = "Process started via Twilio SMS",
                    Priority   = 1,
                    DataFields = myDF
                };


                using (MemoryStream ms = new MemoryStream())
                {
                    DataContractJsonSerializer mySerializerWI = new DataContractJsonSerializer(myInstance.GetType());
                    mySerializerWI.WriteObject(ms, myInstance);
                    StreamReader reader = new StreamReader(ms);
                    ms.Position      = 0;
                    instanceDataJSON = reader.ReadToEnd();
                }

                StringContent datacontent = new StringContent(instanceDataJSON, Encoding.UTF8, "application/json");
                var           task        = k2CloudClient.PostAsync(requesturi, datacontent);

                HttpResponseMessage myResponse = task.Result;

                return(RecordsObj.ReturnMessage);
            }


            else

            {
                return("Missing Platform");
            }
        }