public static async Task <HttpResponseMessage> Run(
            [HttpTrigger(AuthorizationLevel.Function, "post", Route = null)] HttpRequest req,
            ILogger log)
        {
            Response response = new Response();

            try
            {
                string requestBody           = await new StreamReader(req.Body).ReadToEndAsync();
                string connectionstring      = Environment.GetEnvironmentVariable("connectionstring");
                var    salesreturnrequestobj = JsonConvert.DeserializeObject <SalesReturnRequest>(requestBody);


                //Temp Code
                if (!string.IsNullOrEmpty(salesreturnrequestobj.issuccess))
                {
                    var    responsestring = ECOM_POST_ReverseManifest(salesreturnrequestobj);
                    var    ecomres        = JsonConvert.DeserializeObject <Ecom_Response>(responsestring);
                    Random generator      = new Random();
                    String r  = generator.Next(1, 999999).ToString("D5");
                    var    tt = ecomres.RESPONSE_OBJECTS.AIRWAYBILL_OBJECTS.AIRWAYBILL.success;
                    response.success      = true;
                    response.awb_no       = ecomres.RESPONSE_OBJECTS.AIRWAYBILL_OBJECTS.AIRWAYBILL.airwaybill_number;
                    response.carrier_code = "ecomexpress";
                    response.carrier_name = "Ecomexpress";

                    response.msg           = "return created successfully";
                    response.sap_return_id = generator.Next(1, 999999).ToString("D5");


                    return(new HttpResponseMessage(HttpStatusCode.OK)
                    {
                        Content = new StringContent(JsonConvert.SerializeObject(response), Encoding.UTF8, "application/json")
                    });
                }

                sapresponse sapres = SAP_POST_SalesReturn(salesreturnrequestobj);
                if (sapres.MSG_TYP == "e")
                {
                    response.success      = false;
                    response.awb_no       = "";
                    response.carrier_code = "ecomexpress";
                    response.carrier_name = "Ecomexpress";

                    response.msg           = sapres.message;
                    response.sap_return_id = "";

                    return(new HttpResponseMessage(HttpStatusCode.OK)
                    {
                        Content = new StringContent(JsonConvert.SerializeObject(response), Encoding.UTF8, "application/json")
                    });
                }

                if (sapres.MSG_TYP == "s")
                {
                    var responsestring = ECOM_POST_ReverseManifest(salesreturnrequestobj);

                    var ecomres = JsonConvert.DeserializeObject <Ecom_Response>(responsestring);

                    Random generator = new Random();
                    String r         = generator.Next(1, 999999).ToString("D5");

                    var tt = ecomres.RESPONSE_OBJECTS.AIRWAYBILL_OBJECTS.AIRWAYBILL.success;
                    response.success      = true;
                    response.awb_no       = ecomres.RESPONSE_OBJECTS.AIRWAYBILL_OBJECTS.AIRWAYBILL.airwaybill_number;
                    response.carrier_code = "ecomexpress";
                    response.carrier_name = "Ecomexpress";

                    response.msg           = "return created successfully";
                    response.sap_return_id = sapres.ordernumber;


                    return(new HttpResponseMessage(HttpStatusCode.OK)
                    {
                        Content = new StringContent(JsonConvert.SerializeObject(response), Encoding.UTF8, "application/json")
                    });
                }
            }
            catch (Exception ex)
            {
                response.success      = false;
                response.awb_no       = "";
                response.carrier_code = "ecomexpress";
                response.carrier_name = "Ecomexpress";

                response.msg           = ex.Message;
                response.sap_return_id = "";
            }
            return(new HttpResponseMessage(HttpStatusCode.OK)
            {
                Content = new StringContent(JsonConvert.SerializeObject(response), Encoding.UTF8, "application/json")
            });
        }
        public static sapresponse SAP_POST_SalesReturn(SalesReturnRequest salesreturnrequestobj)
        {
            sapresponse obj        = new sapresponse();
            SapRequest  saprequest = new SapRequest();

            saprequest.MAGENTO_ORDER_NO  = salesreturnrequestobj.MAGENTO_ORDER_NO;
            saprequest.MAGENTO_UNIQ_NO   = salesreturnrequestobj.MAGENTO_UNIQ_NO;
            saprequest.SAP_INVOICE_NO    = salesreturnrequestobj.SAP_INVOICE_NO;
            saprequest.SAP_SALE_ORDER_NO = salesreturnrequestobj.SAP_SALE_ORDER_NO;

            var sss = new StringBuilder("<?xml version='1.0' encoding='UTF-8'?>");

            sss.Append("<ZBAPI_MGN_SALES_RETURN xmlns='http://Microsoft.LobServices.Sap/2007/03/Rfc/'><IT_TABLE1><ZSTR_MGN_SALES_RETURN_IT xmlns='http://Microsoft.LobServices.Sap/2007/03/Types/Rfc/'><MAGENTO_UNIQ_NO>" + saprequest.MAGENTO_UNIQ_NO + "</MAGENTO_UNIQ_NO><MAGENTO_ORDER_NO>" + saprequest.MAGENTO_ORDER_NO + "</MAGENTO_ORDER_NO><SAP_SALE_ORDER_NO>" + saprequest.SAP_SALE_ORDER_NO + "</SAP_SALE_ORDER_NO><SAP_INVOICE_NO>" + saprequest.SAP_INVOICE_NO + "</SAP_INVOICE_NO></ZSTR_MGN_SALES_RETURN_IT></IT_TABLE1></ZBAPI_MGN_SALES_RETURN>");


            var lapp_salesreturnurl = Environment.GetEnvironmentVariable("lapp_salesreturnurl");

            var content = new StringContent(sss.ToString());

            using (var client = new HttpClient())
            {
                var result = client.PostAsync(lapp_salesreturnurl, content).Result;

                if (result.IsSuccessStatusCode)
                {
                    XmlDocument xmlDoc = new XmlDocument();

                    //  var q = XDocument.Parse(res, LoadOptions.PreserveWhitespace);
                    //var or = resq.Replace("\"", "'");
                    string p = result.Content.ReadAsStringAsync().Result;
                    var    t = p.Replace("xmlns", "name");
                    xmlDoc.LoadXml(t);


                    string MSG_TYP = xmlDoc.SelectSingleNode("ZBAPI_MGN_SALES_RETURNResponse/RETURN/ZSTR_MGN_SALES_RETURN_ET/MSG_TYP").InnerText;



                    if (MSG_TYP.ToLower() == "s")
                    {
                        string MESSAGE         = xmlDoc.SelectSingleNode("ZBAPI_MGN_SALES_RETURNResponse/RETURN/ZSTR_MGN_SALES_RETURN_ET/MESSAGE").InnerText;
                        string MAGENTO_UNIQ_NO = xmlDoc.SelectSingleNode("ZBAPI_MGN_SALES_RETURNResponse/RETURN/ZSTR_MGN_SALES_RETURN_ET/MAGENTO_UNIQ_NO").InnerText;
                        string RETURN_ORD_NO   = xmlDoc.SelectSingleNode("ZBAPI_MGN_SALES_RETURNResponse/RETURN/ZSTR_MGN_SALES_RETURN_ET/RETURN_ORD_NO").InnerText;
                        string SAP_INVOICE_NO  = xmlDoc.SelectSingleNode("ZBAPI_MGN_SALES_RETURNResponse/RETURN/ZSTR_MGN_SALES_RETURN_ET/SAP_INVOICE_NO").InnerText;

                        obj.ordernumber    = RETURN_ORD_NO;
                        obj.SAP_INVOICE_NO = SAP_INVOICE_NO;
                        obj.message        = MESSAGE;
                        obj.MSG_TYP        = MSG_TYP.ToLower();
                    }

                    if (string.IsNullOrEmpty(MSG_TYP) || MSG_TYP.ToLower() == "e")
                    {
                        string MESSAGE = xmlDoc.SelectSingleNode("ZBAPI_MGN_SALES_RETURNResponse/RETURN/ZSTR_MGN_SALES_RETURN_ET/MESSAGE").InnerText;
                        //string MSG_TYP = xmlDoc.SelectSingleNode("ZBAPI_MGN_SALES_RETURNResponse/RETURN/ZSTR_MGN_SALES_RETURN_ET/MSG_TYP").InnerText;
                        string MAGENTO_UNIQ_NO = xmlDoc.SelectSingleNode("ZBAPI_MGN_SALES_RETURNResponse/RETURN/ZSTR_MGN_SALES_RETURN_ET/MAGENTO_UNIQ_NO").InnerText;
                        string RETURN_ORD_NO   = xmlDoc.SelectSingleNode("ZBAPI_MGN_SALES_RETURNResponse/RETURN/ZSTR_MGN_SALES_RETURN_ET/RETURN_ORD_NO").InnerText;
                        string SAP_INVOICE_NO  = xmlDoc.SelectSingleNode("ZBAPI_MGN_SALES_RETURNResponse/RETURN/ZSTR_MGN_SALES_RETURN_ET/SAP_INVOICE_NO").InnerText;

                        //  obj.ordernumber = RETURN_ORD_NO;
                        // obj.SAP_INVOICE_NO = SAP_INVOICE_NO;
                        obj.message = MESSAGE;
                        obj.MSG_TYP = "e";
                    }
                }

                return(obj);
            }
        }