public override void Get(string Subsidiary)
        {
            string MainURL  = ConfigurationManager.AppSettings[Subsidiary + "Foodics.ResetURL"] + "modifier_options?include=tax_group";
            string NextPage = MainURL;

            do
            {
                var client = new RestClient(NextPage);
                client.Timeout = -1;
                var request = new RestRequest(Method.GET);
                request.OnBeforeDeserialization = resp => { resp.ContentType = "application/json"; };
                request.AddHeader("Authorization", "Bearer " + ConfigurationManager.AppSettings[Subsidiary + "Foodics.Token"]);
                var response = client.Execute <Dictionary <string, List <FoodicsModifierOptions> > >(request);
                if (response.StatusCode == HttpStatusCode.OK && response.Data != null)
                {
                    string content = response.Content;
                    var    Jobj    = JObject.Parse(content);
                    var    nodes   = Jobj.Descendants()
                                     .OfType <JProperty>()
                                     .Where(p => p.Name == "next")
                                     .Select(p => p.Parent)
                                     .ToList();
                    if (nodes.Count > 0)
                    {
                        FoodicsLinks objLinks = new FoodicsLinks();
                        try
                        {
                            objLinks = JsonConvert.DeserializeObject <FoodicsLinks>(JsonConvert.SerializeObject(nodes[0]));
                            NextPage = objLinks.next;
                            if (!string.IsNullOrEmpty(NextPage))
                            {
                                int    startIndex = NextPage.LastIndexOf("?") + 1;
                                int    endIndex   = NextPage.Length - startIndex;
                                string page       = NextPage.Substring(startIndex, endIndex);
                                NextPage = MainURL + "&" + page;
                            }
                        }
                        catch (Exception ex)
                        {
                            LogDAO.Integration_Exception(LogIntegrationType.Error, this.GetType().FullName + "." + System.Reflection.MethodBase.GetCurrentMethod().Name, "Error " + ex.Message);
                        }
                    }
                    foreach (var item in response.Data)
                    {
                        if (item.Key == "data")
                        {
                            if (item.Value.Count > 0)
                            {
                                Generate_Save_NetSuiteLst(item.Value, Subsidiary);
                            }
                        }
                    }
                }
                else
                {
                    return;
                }
            } while (!string.IsNullOrEmpty(NextPage));
        }
        public override void Get(string Subsidiary)
        {
            int    Subsidiary_Id = Utility.ConvertToInt(ConfigurationManager.AppSettings[Subsidiary + "Netsuite.Subsidiary_Id"]);
            object fromDateObj   = new GenericeDAO <Invoice>().GetLatestModifiedDate(Subsidiary_Id, "Date");
            //DateTime fromDateObj = Utility.ConvertToDateTime(ConfigurationManager.AppSettings["InvoiceDate"]);
            DateTime fromDate = new DateTime();

            if (fromDateObj == null)
            {
                fromDate = DateTime.Now;
            }
            else
            {
                fromDate = (DateTime)fromDateObj;
            }
            fromDate = new DateTime(fromDate.Year, fromDate.Month, fromDate.Day).AddDays(-3);
            while (fromDate <= DateTime.Now)
            //while (fromDate <= new DateTime(2021, 12, 20))
            {
                string MainURL = ConfigurationManager.AppSettings[Subsidiary + "Foodics.ResetURL"] + "orders?include=original_order,charges.charge,customer,branch,creator,discount,combos.combo_size.combo,combos.products,products.product,products.discount,products.options,products.options.modifier_option,payments.payment_method&filter[status]=4&filter[status]=5" + "&filter[business_date]=" + fromDate.ToString("yyyy-MM-dd");
                //string MainURL = ConfigurationManager.AppSettings[Subsidiary + "Foodics.ResetURL"] + "orders?include=original_order,charges.charge,customer,branch,creator,discount,combos.combo_size.combo,combos.products,products.product,products.discount,products.options,products.options.modifier_option,payments.payment_method&filter[status]=4&filter[status]=5" + "&filter[id]=b52def5c-2aef-4028-8a2f-b76b0ef48729";
                //string MainURL = ConfigurationManager.AppSettings[Subsidiary + "Foodics.ResetURL"] + "orders?include=original_order,charges.charge,customer,branch,creator,discount,combos.combo_size.combo,combos.products,products.product,products.discount,products.options,products.options.modifier_option,payments.payment_method&filter[status]=4&filter[status]=5" + "&filter[updated_after]=" + fromDate.ToString("yyyy-MM-dd");


                string NextPage = MainURL;
                do
                {
                    var client = new RestClient(NextPage);
                    //client.Timeout = -1;
                    client.Timeout = 200000;
                    var request = new RestRequest(Method.GET);
                    request.AddHeader("Authorization", "Bearer " + ConfigurationManager.AppSettings[Subsidiary + "Foodics.Token"]);
                    var response = client.Execute <Dictionary <string, List <FoodicsOrder> > >(request);
                    if (response.StatusCode == HttpStatusCode.OK && response.Data != null)
                    {
                        string content = response.Content;
                        var    Jobj    = JObject.Parse(content);
                        var    nodes   = Jobj.Descendants()
                                         .OfType <JProperty>()
                                         .Where(p => p.Name == "next")
                                         .Select(p => p.Parent)
                                         .ToList();
                        if (nodes.Count > 0)
                        {
                            FoodicsLinks objLinks = new FoodicsLinks();
                            try
                            {
                                objLinks = JsonConvert.DeserializeObject <FoodicsLinks>(JsonConvert.SerializeObject(nodes[0]));
                                NextPage = objLinks.next;
                                if (!string.IsNullOrEmpty(NextPage))
                                {
                                    int    startIndex = NextPage.LastIndexOf("?") + 1;
                                    int    endIndex   = NextPage.Length - startIndex;
                                    string page       = NextPage.Substring(startIndex, endIndex);
                                    NextPage = MainURL + "&" + page;
                                }
                                LogDAO.Integration_Exception(LogIntegrationType.Error, this.GetType().FullName + "." + System.Reflection.MethodBase.GetCurrentMethod().Name, "From Date " + fromDate.ToString("yyyy-MM-dd") + " Page:" + NextPage);
                            }
                            catch (Exception ex)
                            {
                                LogDAO.Integration_Exception(LogIntegrationType.Error, this.GetType().FullName + "." + System.Reflection.MethodBase.GetCurrentMethod().Name, "Error " + ex.Message + " - Page index:" + NextPage);
                            }
                        }
                        foreach (var item in response.Data)
                        {
                            if (item.Key == "data")
                            {
                                if (item.Value.Count > 0)
                                {
                                    Generate_Save_NetSuiteLst(item.Value, Subsidiary_Id);
                                }
                            }
                        }
                    }
                } while (!string.IsNullOrEmpty(NextPage));
                fromDate = fromDate.AddDays(1);
            }
        }
        public override void Get(string Subsidiary)
        {
            int      Subsidiary_Id = Utility.ConvertToInt(ConfigurationManager.AppSettings[Subsidiary + "Netsuite.Subsidiary_Id"]);
            object   fromDateObj   = new GenericeDAO <Customer>().GetLatestModifiedDate(Subsidiary_Id, "Foodics_UpdateDate");
            DateTime fromDate      = new DateTime();

            if (fromDateObj == null)
            {
                fromDate = DateTime.Now.AddDays(-30);
            }
            else
            {
                fromDate = (DateTime)fromDateObj;
            }
            string MainURL  = ConfigurationManager.AppSettings[Subsidiary + "Foodics.ResetURL"] + "customers?filter[updated_after]=" + fromDate.ToString("yyyy-MM-dd");
            string NextPage = MainURL;

            do
            {
                var client = new RestClient(NextPage);
                client.Timeout = -1;
                var request = new RestRequest(Method.GET);
                request.AddHeader("Authorization", "Bearer " + ConfigurationManager.AppSettings[Subsidiary + "Foodics.Token"]);
                var response = client.Execute <Dictionary <string, List <FoodicsCustomer> > >(request);
                if (response.StatusCode == HttpStatusCode.OK && response.Data != null)
                {
                    string content = response.Content;
                    var    Jobj    = JObject.Parse(content);
                    var    nodes   = Jobj.Descendants()
                                     .OfType <JProperty>()
                                     .Where(p => p.Name == "next")
                                     .Select(p => p.Parent)
                                     .ToList();
                    if (nodes.Count > 0)
                    {
                        FoodicsLinks objLinks = new FoodicsLinks();
                        try
                        {
                            objLinks = JsonConvert.DeserializeObject <FoodicsLinks>(JsonConvert.SerializeObject(nodes[0]));
                            NextPage = objLinks.next;
                            if (!string.IsNullOrEmpty(NextPage))
                            {
                                int    startIndex = NextPage.LastIndexOf("?") + 1;
                                int    endIndex   = NextPage.Length - startIndex;
                                string page       = NextPage.Substring(startIndex, endIndex);
                                NextPage = MainURL + "&" + page;
                            }
                            LogDAO.Integration_Exception(LogIntegrationType.Error, this.GetType().FullName + "." + System.Reflection.MethodBase.GetCurrentMethod().Name, "From Date " + fromDate.ToString("yyyy-MM-dd") + " Page:" + NextPage);
                        }
                        catch (Exception ex)
                        {
                            LogDAO.Integration_Exception(LogIntegrationType.Error, this.GetType().FullName + "." + System.Reflection.MethodBase.GetCurrentMethod().Name, "Error " + ex.Message);
                        }
                    }
                    foreach (var item in response.Data)
                    {
                        if (item.Key == "data")
                        {
                            if (item.Value.Count > 0)
                            {
                                Generate_Save_NetSuiteLst(item.Value, Subsidiary_Id);
                            }
                        }
                    }
                }
            } while (!string.IsNullOrEmpty(NextPage));
        }