/// <summary>
        /// GetdataFromMySQL
        /// </summary>
        /// <param name="ConString"></param>
        public static void GetdataFromMySQL(string ConString)
        {
            int    ID          = 0;
            int    TenantId    = 0;
            string InvoiceNo   = string.Empty;
            string AWBNo       = string.Empty;
            string apiResponse = string.Empty;
            string StoreCode   = string.Empty;
            string ProgramCode = string.Empty;

            CouriertrackResponce couriertrackResponce = new CouriertrackResponce();


            MySqlConnection con = null;

            try
            {
                DataTable dt = new DataTable();

                IConfiguration config = new ConfigurationBuilder().AddJsonFile("appsettings.json", true, true).Build();

                string ClientAPIURL = config.GetSection("MySettings").GetSection("ClientAPIURL").Value;


                con = new MySqlConnection(ConString);
                MySqlCommand cmd = new MySqlCommand("SP_PHYGetCourierTrackingDetails", con)
                {
                    CommandType = System.Data.CommandType.StoredProcedure
                };
                cmd.Connection.Open();
                MySqlDataAdapter da = new MySqlDataAdapter(cmd);
                da.Fill(dt);
                cmd.Connection.Close();
                if (dt.Rows.Count > 0)
                {
                    for (int i = 0; i < dt.Rows.Count; i++)
                    {
                        try
                        {
                            DataRow dr = dt.Rows[i];
                            ID          = Convert.ToInt32(dr["ID"]);
                            TenantId    = Convert.ToInt32(dr["TenantId"]);
                            InvoiceNo   = Convert.ToString(dr["InvoiceNo"]);
                            AWBNo       = Convert.ToString(dr["AWBNo"]);
                            StoreCode   = Convert.ToString(dr["StoreCode"]);
                            ProgramCode = Convert.ToString(dr["ProgramCode"]);

                            CouriertrackRequest couriertrack = new CouriertrackRequest()
                            {
                                awb_no = AWBNo
                            };

                            WebBotContentRequest webBotcontentRequest = new WebBotContentRequest
                            {
                                MaxWebBotHSMURL = _maxHSMURL + _maxWeBotHSM,
                                ProgramCode     = ProgramCode
                            };

                            WebBotHSMSetting webBotHSMSetting = new WebBotHSMSetting();
                            webBotHSMSetting = _hsmProgramcode.Find(x => x.Programcode.Equals(ProgramCode.ToLower()));

                            if (webBotHSMSetting != null)
                            {
                                webBotcontentRequest.webBotHSMSetting = new WebBotHSMSetting();
                                if (!string.IsNullOrEmpty(webBotHSMSetting.Programcode))
                                {
                                    webBotcontentRequest.MaxWebBotHSMURL  = webBotcontentRequest.MaxWebBotHSMURL + "?bot=" + webBotHSMSetting.bot;
                                    webBotcontentRequest.webBotHSMSetting = webBotHSMSetting;
                                    MaxWebBotHSMRequest maxreq = new MaxWebBotHSMRequest();
                                    Hsm hsmReq = new Hsm()
                                    {
                                        @namespace = webBotHSMSetting.@namespace,
                                        language   = new Language()
                                        {
                                            policy = _policy, code = _code
                                        }
                                    };
                                    Body body = new Body()
                                    {
                                        // from = webBotcontentRequest.WABANo,// _from,
                                        ttl  = Convert.ToInt32(_ttl),
                                        type = _type,
                                        hsm  = hsmReq
                                    };
                                    maxreq.body = body;

                                    webBotcontentRequest.MaxHSMRequest = maxreq;
                                }
                            }


                            string apiReq = JsonConvert.SerializeObject(couriertrack);
                            apiResponse          = CommonService.SendApiRequest(ClientAPIURL + "/api/ShoppingBag/GetTracking", apiReq);
                            couriertrackResponce = JsonConvert.DeserializeObject <CouriertrackResponce>(apiResponse);
                            if (couriertrackResponce.statusCode == "200" || couriertrackResponce.statusCode == "202")
                            {
                                if (couriertrackResponce.data.tracking_data.shipment_track != null)
                                {
                                    if (couriertrackResponce.data.tracking_data.shipment_track[0].current_status != null)
                                    {
                                        UpdateResponse(ID, TenantId, InvoiceNo, couriertrackResponce.data.tracking_data.shipment_track[0].current_status, ConString);

                                        bool IsSend = UpdateCourierStatus(ID, TenantId, InvoiceNo, couriertrackResponce.data.tracking_data.shipment_track[0].current_status, ConString);

                                        if (IsSend)
                                        {
                                            CommonService.SmsWhatsUpDataSend(TenantId, 0, ProgramCode, ID, ClientAPIURL, couriertrackResponce.data.tracking_data.shipment_track[0].current_status, ConString, webBotcontentRequest, _xauthtoken);
                                        }
                                    }
                                }
                            }
                            else
                            {
                                ExLogger(ID, InvoiceNo, Convert.ToString(DateTime.Now), StoreCode, couriertrackResponce.statusCode + " : " + couriertrackResponce.data.tracking_data.error, apiResponse, ConString);
                            }
                        }
                        catch (Exception eX)
                        {
                        }
                    }
                }
            }
            catch (Exception ex)
            {
            }
            finally
            {
                if (con != null)
                {
                    con.Close();
                }
                GC.Collect();
            }
        }
        /// <summary>
        /// SmsWhatsUpDataSend
        /// </summary>
        /// <param name="tenantId"></param>
        /// <param name="userId"></param>
        /// <param name="ProgramCode"></param>
        /// <param name="orderId"></param>
        /// <param name="ClientAPIURL"></param>
        /// <param name="sMSWhtappTemplate"></param>
        /// <param name="ConString"></param>
        /// <returns></returns>
        public static int SmsWhatsUpDataSend(int tenantId, int userId, string ProgramCode, int orderId, string ClientAPIURL, string sMSWhtappTemplate, string ConString, WebBotContentRequest webBotcontentRequest, string Xauthtoken)
        {
            int     result  = 0;
            string  Message = "";
            DataSet ds      = new DataSet();
            OrdersSmsWhatsUpDataDetails ordersSmsWhatsUpDataDetails = new OrdersSmsWhatsUpDataDetails();
            MaxWebBotHSMResponse        MaxResponse = new MaxWebBotHSMResponse();

            conn = new MySqlConnection(ConString);
            try
            {
                GetWhatsappMessageDetailsResponse        getWhatsappMessageDetailsResponse     = new GetWhatsappMessageDetailsResponse();
                List <GetWhatsappMessageDetailsResponse> getWhatsappMessageDetailsResponseList = new List <GetWhatsappMessageDetailsResponse>();

                string whatsapptemplate = GetWhatsupTemplateName(tenantId, userId, sMSWhtappTemplate);

                string strpostionNumber = "";
                string strpostionName   = "";
                string additionalInfo   = "";
                try
                {
                    GetWhatsappMessageDetailsModal getWhatsappMessageDetailsModal = new GetWhatsappMessageDetailsModal()
                    {
                        ProgramCode = ProgramCode
                    };

                    string apiBotReq      = JsonConvert.SerializeObject(getWhatsappMessageDetailsModal);
                    string apiBotResponse = CommonService.SendApiRequest(ClientAPIURL + "api/ChatbotBell/GetWhatsappMessageDetails", apiBotReq);

                    //if (!string.IsNullOrEmpty(apiBotResponse.Replace("[]", "").Replace("[", "").Replace("]", "")))
                    //{
                    //    getWhatsappMessageDetailsResponse = JsonConvert.DeserializeObject<GetWhatsappMessageDetailsResponse>(apiBotResponse.Replace("[", "").Replace("]", ""));
                    //}

                    if (!string.IsNullOrEmpty(apiBotResponse.Replace("[]", "").Replace("[", "").Replace("]", "")))
                    {
                        getWhatsappMessageDetailsResponseList = JsonConvert.DeserializeObject <List <GetWhatsappMessageDetailsResponse> >(apiBotResponse);
                    }

                    if (getWhatsappMessageDetailsResponseList != null)
                    {
                        if (getWhatsappMessageDetailsResponseList.Count > 0)
                        {
                            getWhatsappMessageDetailsResponse = getWhatsappMessageDetailsResponseList.Where(x => x.TemplateName == whatsapptemplate).FirstOrDefault();
                        }
                    }

                    if (getWhatsappMessageDetailsResponse != null)
                    {
                        if (getWhatsappMessageDetailsResponse.Remarks != null && getWhatsappMessageDetailsResponse.Remarks != "")
                        {
                            string   ObjRemark     = getWhatsappMessageDetailsResponse.Remarks.Replace("\r\n", "");
                            string[] ObjSplitComma = ObjRemark.Split(',');

                            if (ObjSplitComma.Length > 0)
                            {
                                for (int i = 0; i < ObjSplitComma.Length; i++)
                                {
                                    strpostionNumber += ObjSplitComma[i].Split('-')[0].Trim().Replace("{", "").Replace("}", "") + ",";
                                    strpostionName   += ObjSplitComma[i].Split('-')[1].Trim() + ",";
                                }
                            }

                            strpostionNumber = strpostionNumber.TrimEnd(',');
                            strpostionName   = strpostionName.TrimEnd(',');
                        }
                    }
                }
                catch (Exception)
                {
                    getWhatsappMessageDetailsResponse = new GetWhatsappMessageDetailsResponse();
                }

                MySqlCommand cmd = new MySqlCommand("SP_PHYGetSmsWhatsUpDataDetails", conn)
                {
                    CommandType = CommandType.StoredProcedure
                };
                cmd.Parameters.AddWithValue("@_TenantID", tenantId);
                cmd.Parameters.AddWithValue("@_UserID", userId);
                cmd.Parameters.AddWithValue("@_OrderID", orderId);
                cmd.Parameters.AddWithValue("@_strpostionNumber", strpostionNumber);
                cmd.Parameters.AddWithValue("@_strpostionName", strpostionName);
                cmd.Parameters.AddWithValue("@_sMSWhtappTemplate", sMSWhtappTemplate);

                MySqlDataAdapter da = new MySqlDataAdapter
                {
                    SelectCommand = cmd
                };
                da.Fill(ds);

                if (ds != null && ds.Tables[0] != null)
                {
                    ordersSmsWhatsUpDataDetails = new OrdersSmsWhatsUpDataDetails()
                    {
                        OderID = ds.Tables[0].Rows[0]["OderID"] == DBNull.Value ? 0 : Convert.ToInt32(ds.Tables[0].Rows[0]["OderID"]),
                        AlertCommunicationviaWhtsup = ds.Tables[0].Rows[0]["AlertCommunicationviaWhtsup"] == DBNull.Value ? false : Convert.ToBoolean(ds.Tables[0].Rows[0]["AlertCommunicationviaWhtsup"]),
                        AlertCommunicationviaSMS    = ds.Tables[0].Rows[0]["AlertCommunicationviaSMS"] == DBNull.Value ? false : Convert.ToBoolean(ds.Tables[0].Rows[0]["AlertCommunicationviaSMS"]),
                        SMSSenderName  = ds.Tables[0].Rows[0]["SMSSenderName"] == DBNull.Value ? string.Empty : Convert.ToString(ds.Tables[0].Rows[0]["SMSSenderName"]),
                        IsSend         = ds.Tables[0].Rows[0]["IsSend"] == DBNull.Value ? false : Convert.ToBoolean(ds.Tables[0].Rows[0]["IsSend"]),
                        MessageText    = ds.Tables[0].Rows[0]["MessageText"] == DBNull.Value ? string.Empty : Convert.ToString(ds.Tables[0].Rows[0]["MessageText"]),
                        InvoiceNo      = ds.Tables[0].Rows[0]["InvoiceNo"] == DBNull.Value ? string.Empty : Convert.ToString(ds.Tables[0].Rows[0]["InvoiceNo"]),
                        MobileNumber   = ds.Tables[0].Rows[0]["MobileNumber"] == DBNull.Value ? string.Empty : Convert.ToString(ds.Tables[0].Rows[0]["MobileNumber"]),
                        WabaNumber     = ds.Tables[0].Rows[0]["WabaNumber"] == DBNull.Value ? string.Empty : Convert.ToString(ds.Tables[0].Rows[0]["WabaNumber"]),
                        ShoppingBagNo  = ds.Tables[0].Rows[0]["ShoppingBagNo"] == DBNull.Value ? string.Empty : Convert.ToString(ds.Tables[0].Rows[0]["ShoppingBagNo"]),
                        AdditionalInfo = ds.Tables[1].Rows[0]["additionalInfo"] == DBNull.Value ? string.Empty : Convert.ToString(ds.Tables[1].Rows[0]["additionalInfo"]),
                    };
                    // result = ds.Tables[0].Rows[0]["ChatID"] == DBNull.Value ? 0 : Convert.ToInt32(ds.Tables[0].Rows[0]["ChatID"]);
                    // Message = ds.Tables[0].Rows[0]["Message"] == DBNull.Value ? String.Empty : Convert.ToString(ds.Tables[0].Rows[0]["Message"]);
                    // additionalInfo = ds.Tables[0].Rows[0]["additionalInfo"] == DBNull.Value ? String.Empty : Convert.ToString(ds.Tables[0].Rows[0]["additionalInfo"]);
                }


                if (ordersSmsWhatsUpDataDetails.IsSend)
                {
                    if (ordersSmsWhatsUpDataDetails.AlertCommunicationviaWhtsup)
                    {
                        try
                        {
                            List <string> additionalList = new List <string>();
                            if (additionalInfo != null)
                            {
                                additionalList = ordersSmsWhatsUpDataDetails.AdditionalInfo.Split(",").ToList();
                            }


                            if (webBotcontentRequest.webBotHSMSetting != null)
                            {
                                if (webBotcontentRequest.webBotHSMSetting.Programcode.ToLower().Equals(webBotcontentRequest.ProgramCode.ToLower()))
                                {
                                    webBotcontentRequest.WABANo = ordersSmsWhatsUpDataDetails.WabaNumber;
                                    webBotcontentRequest.MaxHSMRequest.body.to               = ordersSmsWhatsUpDataDetails.MobileNumber;
                                    webBotcontentRequest.MaxHSMRequest.body.from             = ordersSmsWhatsUpDataDetails.WabaNumber;
                                    webBotcontentRequest.MaxHSMRequest.body.hsm.element_name = getWhatsappMessageDetailsResponse.TemplateName;
                                    webBotcontentRequest.TenantID    = tenantId;
                                    webBotcontentRequest.ProgramCode = ProgramCode;
                                    webBotcontentRequest.UserID      = userId;



                                    if (additionalList.Count > 0)
                                    {
                                        List <LocalizableParam> list = new List <LocalizableParam>();

                                        foreach (string str in additionalList)
                                        {
                                            list.Add(new LocalizableParam()
                                            {
                                                @default = str
                                            });
                                        }
                                        webBotcontentRequest.MaxHSMRequest.body.hsm.localizable_params = list;
                                    }

                                    string JsonRequest       = JsonConvert.SerializeObject(webBotcontentRequest.MaxHSMRequest);
                                    string ClientAPIResponse = CommonService.MaxSendApiRequest(webBotcontentRequest.MaxWebBotHSMURL, JsonRequest, Xauthtoken);

                                    if (!string.IsNullOrEmpty(ClientAPIResponse))
                                    {
                                        MaxResponse = JsonConvert.DeserializeObject <MaxWebBotHSMResponse>(ClientAPIResponse);
                                        result      = MaxResponse.success ? 1 : 0;
                                    }
                                    else
                                    {
                                        result = 0;
                                    }
                                }
                            }
                            else
                            {
                                SendFreeTextRequest sendFreeTextRequest = new SendFreeTextRequest
                                {
                                    To             = ordersSmsWhatsUpDataDetails.MobileNumber.TrimStart('0').Length > 10 ? ordersSmsWhatsUpDataDetails.MobileNumber : "91" + ordersSmsWhatsUpDataDetails.MobileNumber.TrimStart('0'),
                                    ProgramCode    = ProgramCode,
                                    TemplateName   = getWhatsappMessageDetailsResponse.TemplateName,
                                    AdditionalInfo = additionalList
                                };

                                string apiReq = JsonConvert.SerializeObject(sendFreeTextRequest);
                                apiResponse = CommonService.SendApiRequest(ClientAPIURL + "api/ChatbotBell/SendCampaign", apiReq);
                            }
                            //if (apiResponse.Equals("true"))
                            //{
                            //    UpdateResponseShare(objRequest.CustomerID, "Contacted Via Chatbot");
                            //}
                        }
                        catch (Exception)
                        {
                            throw;
                        }
                    }
                    else if (ordersSmsWhatsUpDataDetails.AlertCommunicationviaSMS)
                    {
                        Message = ordersSmsWhatsUpDataDetails.MessageText;

                        //else if (sMSWhtappTemplate == "AWBAssigned" & ordersSmsWhatsUpDataDetails.AWBAssigned)
                        //{
                        //    Message = ordersSmsWhatsUpDataDetails.AWBAssignedText;
                        //}
                        //else if (sMSWhtappTemplate == "PickupScheduled" & ordersSmsWhatsUpDataDetails.PickupScheduled)
                        //{
                        //    Message = ordersSmsWhatsUpDataDetails.PickupScheduledText;
                        //}
                        //else if (sMSWhtappTemplate == "Shipped" & ordersSmsWhatsUpDataDetails.Shipped)
                        //{
                        //    Message = ordersSmsWhatsUpDataDetails.ShippedText;
                        //}
                        //else if (sMSWhtappTemplate == "Delivered" & ordersSmsWhatsUpDataDetails.Delivered)
                        //{
                        //    Message = ordersSmsWhatsUpDataDetails.DeliveredText;
                        //}


                        ChatSendSMS chatSendSMS = new ChatSendSMS
                        {
                            MobileNumber = ordersSmsWhatsUpDataDetails.MobileNumber.TrimStart('0').Length > 10 ? ordersSmsWhatsUpDataDetails.MobileNumber : "91" + ordersSmsWhatsUpDataDetails.MobileNumber.TrimStart('0'),
                            SenderId     = ordersSmsWhatsUpDataDetails.SMSSenderName,
                            SmsText      = Message
                        };

                        string apiReq = JsonConvert.SerializeObject(chatSendSMS);
                        apiResponse = CommonService.SendApiRequest(ClientAPIURL + "api/ChatbotBell/SendSMS", apiReq);

                        ChatSendSMSResponse chatSendSMSResponse = new ChatSendSMSResponse();

                        chatSendSMSResponse = JsonConvert.DeserializeObject <ChatSendSMSResponse>(apiResponse);

                        if (chatSendSMSResponse != null)
                        {
                            result = chatSendSMSResponse.Id;
                        }

                        //if (result > 0)
                        //{
                        //    UpdateResponseShare(objRequest.CustomerID, "Contacted Via SMS");
                        //}
                    }
                }
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                if (conn != null)
                {
                    conn.Close();
                }
                if (ds != null)
                {
                    ds.Dispose();
                }
            }

            return(result);
        }