Beispiel #1
0
        public string FTP_BentonAR(string streetNo, string streetName, string direction, string streetType, string unitNumber, string parcelNumber, string ownerName, string searchType, string orderNumber)
        {
            GlobalClass.global_orderNo             = orderNumber;
            HttpContext.Current.Session["orderNo"] = orderNumber;
            GlobalClass.global_parcelNo            = parcelNumber;

            string StartTime = "", AssessmentTime = "", TaxTime = "", CitytaxTime = "", LastEndTime = "";
            string Taxing_Authority = "";
            var    driverService    = PhantomJSDriverService.CreateDefaultService();

            driverService.HideCommandPromptWindow = true;
            //driver = new PhantomJSDriver();
            //driver = new ChromeDriver();
            string address = "";

            using (driver = new PhantomJSDriver()) //ChromeDriver
            {
                try
                {
                    StartTime = DateTime.Now.ToString("HH:mm:ss");
                    driver.Navigate().GoToUrl("https://www.arcountydata.com/sponsored.asp");
                    Thread.Sleep(3000);
                    StartTime = DateTime.Now.ToString("HH:mm:ss");

                    if (direction != "")
                    {
                        address = streetNo + " " + direction + " " + streetName + " " + streetType + " " + unitNumber;
                    }
                    else
                    {
                        address = streetNo + " " + streetName + " " + streetType + " " + unitNumber;
                    }

                    if (searchType == "titleflex")
                    {
                        gc.TitleFlexSearch(orderNumber, "", ownerName, address.Trim(), "AR", "Benton");
                        if ((HttpContext.Current.Session["TitleFlex_Search"] != null && HttpContext.Current.Session["TitleFlex_Search"].ToString() == "Yes"))
                        {
                            driver.Quit();
                            return("MultiParcel");
                        }
                        else if (HttpContext.Current.Session["titleparcel"].ToString() == "")
                        {
                            HttpContext.Current.Session["Nodata_BentonAR"] = "Yes";
                            driver.Quit();
                            return("No Data Found");
                        }
                        parcelNumber = HttpContext.Current.Session["titleparcel"].ToString();
                        searchType   = "parcel";
                    }
                    if (searchType == "address")
                    {                                                                   ///html/body/div[2]/table/tbody/tr[2]/td/form/div/div/select
                        SelectElement ss = new SelectElement(driver.FindElement(By.XPath("/html/body/div[2]/table/tbody/tr[2]/td/form/div/div/select")));
                        ss.SelectByValue("Benton");
                        Thread.Sleep(2000);
                        gc.CreatePdf_WOP(orderNumber, "Select Search Input", driver, "AR", "Benton");
                        driver.FindElement(By.XPath("//*[@id='Assessor']/div/div[2]/a")).Click();
                        Thread.Sleep(2000);
                        driver.FindElement(By.Id("StreetNumber")).SendKeys(streetNo);
                        driver.FindElement(By.Id("StreetName")).SendKeys(streetName);
                        Thread.Sleep(2000);
                        gc.CreatePdf_WOP(orderNumber, "Address Search Input", driver, "AR", "Benton");
                        driver.FindElement(By.Id("Search")).SendKeys(Keys.Enter);
                        Thread.Sleep(2000);
                        gc.CreatePdf_WOP(orderNumber, "Address Search Result", driver, "AR", "Benton");

                        //Multiparcel
                        try
                        {
                            //int Count = 0;
                            string              matches           = driver.FindElement(By.XPath("/html/body/div[2]/div[2]/div[2]/table/tbody/tr[2]/td[2]")).Text;
                            string              matches1          = GlobalClass.After(matches, "to").Trim();
                            IWebElement         Multiaddresstable = driver.FindElement(By.XPath("//*[@id='parcel_report']/table/tbody"));
                            IList <IWebElement> multiaddressrow   = Multiaddresstable.FindElements(By.TagName("tr"));
                            IList <IWebElement> Multiaddressid;
                            foreach (IWebElement Multiaddress in multiaddressrow)
                            {
                                Multiaddressid = Multiaddress.FindElements(By.TagName("td"));
                                if (multiaddressrow.Count > 4 && Multiaddressid.Count != 0 && Multiaddressid.Count == 10 && !Multiaddress.Text.Contains("Parcel #"))
                                {
                                    string Multiparcelnumber = Multiaddressid[0].Text;
                                    string OWnername         = Multiaddressid[1].Text;
                                    string Address1          = Multiaddressid[3].Text;

                                    string multiaddressresult = OWnername + "~" + Address1;
                                    gc.insert_date(orderNumber, Multiparcelnumber, 1625, multiaddressresult, 1, DateTime.Now);
                                    //Count++;
                                }
                            }
                            if (multiaddressrow.Count == 4)
                            {
                                driver.FindElement(By.XPath("//*[@id='parcel_report']/table/tbody/tr[2]/td[1]/a")).Click();
                                Thread.Sleep(2000);
                                gc.CreatePdf_WOP(orderNumber, "Address Search Result", driver, "AR", "Benton");
                            }

                            if (multiaddressrow.Count > 4 && Convert.ToInt16(matches1) <= 28)
                            {
                                HttpContext.Current.Session["multiParcel_BentonAR"] = "Yes";
                                driver.Quit();
                                return("MultiParcel");
                            }
                            if (Convert.ToInt16(matches1) > 29)
                            {
                                HttpContext.Current.Session["multiParcel_BentonAR_Maximum"] = "Maximum";
                                driver.Quit();
                                return("Maximum");
                            }
                        }
                        catch { }
                        try
                        {
                            //No Data Found
                            string nodata = driver.FindElement(By.XPath("/html/body/div[2]/div[2]/div/div")).Text;
                            if (nodata.Contains("Nothing matching your search criteria was found"))
                            {
                                HttpContext.Current.Session["Nodata_BentonAR"] = "Yes";
                                driver.Quit();
                                return("No Data Found");
                            }
                        }
                        catch { }
                    }
                    if (searchType == "parcel")
                    {
                        // driver.FindElement(By.XPath("/html/body/div[2]/table/tbody/tr[2]/td/form/div/div/select/option[5]"));
                        SelectElement ss = new SelectElement(driver.FindElement(By.XPath("/html/body/div[2]/table/tbody/tr[2]/td/form/div/div/select")));
                        ss.SelectByValue("Benton");
                        Thread.Sleep(2000);
                        gc.CreatePdf_WOP(orderNumber, "Select Search Input", driver, "AR", "Benton");
                        driver.FindElement(By.XPath("//*[@id='Assessor']/div/div[2]/a")).Click();
                        Thread.Sleep(2000);
                        driver.FindElement(By.Id("ParcelNumber")).SendKeys(parcelNumber);
                        Thread.Sleep(2000);
                        gc.CreatePdf_WOP(orderNumber, "Parcel Search Input", driver, "AR", "Benton");
                        driver.FindElement(By.Id("Search")).SendKeys(Keys.Enter);
                        Thread.Sleep(2000);
                        gc.CreatePdf_WOP(orderNumber, "Parcel Search Result", driver, "AR", "Benton");
                        try
                        {
                            //No Data Found
                            string nodata = driver.FindElement(By.XPath("/html/body/div[2]/div[2]/div/div")).Text;
                            if (nodata.Contains("Nothing matching your search criteria was found"))
                            {
                                HttpContext.Current.Session["Nodata_BentonAR"] = "Yes";
                                driver.Quit();
                                return("No Data Found");
                            }
                        }
                        catch { }
                    }
                    if (searchType == "ownername")
                    {
                        SelectElement ss = new SelectElement(driver.FindElement(By.XPath("/html/body/div[2]/table/tbody/tr[2]/td/form/div/div/select")));
                        ss.SelectByValue("Benton");
                        Thread.Sleep(2000);
                        gc.CreatePdf_WOP(orderNumber, "Select OwnerSearch Input", driver, "AR", "Benton");
                        driver.FindElement(By.XPath("//*[@id='Assessor']/div/div[2]/a")).Click();
                        Thread.Sleep(2000);
                        driver.FindElement(By.Id("OwnerName")).SendKeys(ownerName);
                        Thread.Sleep(2000);
                        gc.CreatePdf_WOP(orderNumber, "Owner Search Input", driver, "AR", "Benton");
                        driver.FindElement(By.Id("Search")).SendKeys(Keys.Enter);
                        Thread.Sleep(2000);
                        gc.CreatePdf_WOP(orderNumber, "Owner Search Result", driver, "AR", "Benton");
                        //Multiparcel
                        try
                        {
                            //int Count = 0;
                            string              matches           = driver.FindElement(By.XPath("/html/body/div[2]/div[2]/div[2]/table/tbody/tr[2]/td[2]")).Text;
                            string              matches1          = GlobalClass.After(matches, "to").Trim();
                            IWebElement         Multiaddresstable = driver.FindElement(By.XPath("//*[@id='parcel_report']/table/tbody"));
                            IList <IWebElement> multiaddressrow   = Multiaddresstable.FindElements(By.TagName("tr"));
                            IList <IWebElement> Multiaddressid;
                            foreach (IWebElement Multiaddress in multiaddressrow)
                            {
                                Multiaddressid = Multiaddress.FindElements(By.TagName("td"));
                                if (multiaddressrow.Count > 4 && Multiaddressid.Count != 0 && Multiaddressid.Count == 10 && !Multiaddress.Text.Contains("Parcel #"))
                                {
                                    string Multiparcelnumber = Multiaddressid[0].Text;
                                    string OWnername         = Multiaddressid[1].Text;
                                    string Address1          = Multiaddressid[3].Text;

                                    string multiaddressresult = OWnername + "~" + Address1;
                                    gc.insert_date(orderNumber, Multiparcelnumber, 1625, multiaddressresult, 1, DateTime.Now);
                                    //Count++;
                                }
                            }
                            if (multiaddressrow.Count == 4)
                            {
                                driver.FindElement(By.XPath("//*[@id='parcel_report']/table/tbody/tr[2]/td[1]/a")).Click();
                                Thread.Sleep(2000);
                                gc.CreatePdf_WOP(orderNumber, "Owner Search Result", driver, "AR", "Benton");
                            }

                            if (multiaddressrow.Count > 4 && Convert.ToInt16(matches1) <= 28)
                            {
                                HttpContext.Current.Session["multiParcel_BentonAR"] = "Yes";
                                driver.Quit();
                                return("MultiParcel");
                            }
                            if (Convert.ToInt16(matches1) > 29)
                            {
                                HttpContext.Current.Session["multiParcel_BentonAR_Maximum"] = "Maximum";
                                driver.Quit();
                                return("Maximum");
                            }
                        }
                        catch { }
                        try
                        {
                            //No Data Found
                            string nodata = driver.FindElement(By.XPath("/html/body/div[2]/div[2]/div/div")).Text;
                            if (nodata.Contains("Nothing matching your search criteria was found"))
                            {
                                HttpContext.Current.Session["Nodata_BentonAR"] = "Yes";
                                driver.Quit();
                                return("No Data Found");
                            }
                        }
                        catch { }
                    }
                    //Property Details
                    try
                    {
                        driver.FindElement(By.XPath("//*[@id='parcel_report']/table/tbody/tr[2]/td[1]/a")).Click();
                        Thread.Sleep(2000);
                        gc.CreatePdf_WOP(orderNumber, "Parcel Search Result", driver, "AR", "Benton");
                    }
                    catch { }
                    string              ParcelID = "", CountyName = "", OwnershipInformation = "", PropertyAddress = "", BillingInformation = "", TotalAcres = "", TimberAcres = "", SecTwpRng = "", Subdivision = "", LegalDescription = "", SchoolDistrict = "", TaxStatus = "", Over65 = "", YearBuilt = "";
                    string              title = "", value = "";
                    IWebElement         Propinfo1   = driver.FindElement(By.XPath("//*[@id='Basic']/div/div[2]/table/tbody"));
                    IList <IWebElement> TRPropinfo1 = Propinfo1.FindElements(By.TagName("tr"));
                    IList <IWebElement> AherfProp;
                    foreach (IWebElement row in TRPropinfo1)
                    {
                        AherfProp = row.FindElements(By.TagName("td"));

                        if (AherfProp.Count != 0 && AherfProp.Count == 2 && AherfProp[0].Text.Trim() != "" && !row.Text.Contains("Parcel Number:"))
                        {
                            title += AherfProp[0].Text.Replace("\r\n", " ").Replace(":", "").Replace("?", "").Replace("`", "") + "~";
                            value += AherfProp[1].Text.Replace("\r\n", " ").Replace(":", "").Replace("?", "").Replace("Map This Address", "") + "~";
                        }
                        if (AherfProp.Count != 0 && AherfProp.Count == 2 && AherfProp[0].Text.Trim() != "" && row.Text.Contains("Parcel Number:"))
                        {
                            ParcelID = AherfProp[1].Text;
                        }
                    }
                    try
                    {
                        string current = driver.CurrentWindowHandle;
                        driver.FindElement(By.XPath("/html/body/div[2]/div[3]/div/ul/li[5]/a")).Click();
                        Thread.Sleep(2000);
                        driver.SwitchTo().Window(driver.WindowHandles.Last());
                        driver.SwitchTo().Window(current);
                        YearBuilt = driver.FindElement(By.XPath("//*[@id='Improvements']/div/div[2]/table/tbody/tr[10]/td[2]")).Text.Trim();
                        gc.CreatePdf(orderNumber, ParcelID, "Year Built Result", driver, "AR", "Benton");
                    }
                    catch { }
                    db.ExecuteQuery("update data_field_master set Data_Fields_Text='" + title + "Year Built" + "' where Id = '" + 1457 + "'");
                    gc.insert_date(orderNumber, ParcelID, 1457, value + YearBuilt, 1, DateTime.Now);
                    //Land pdf
                    try
                    {
                        driver.FindElement(By.XPath("/html/body/div[2]/div[3]/div/ul/li[2]/a")).Click();
                        Thread.Sleep(2000);
                        gc.CreatePdf(orderNumber, ParcelID, "Land Pdf", driver, "AR", "Benton");
                    }
                    catch { }

                    //Sales
                    try
                    {
                        driver.FindElement(By.XPath("/html/body/div[2]/div[3]/div/ul/li[3]/a")).Click();
                        Thread.Sleep(2000);
                        gc.CreatePdf(orderNumber, ParcelID, "Sales Pdf", driver, "AR", "Benton");
                    }
                    catch { }

                    //Assessment Details
                    try
                    {
                        driver.FindElement(By.XPath("/html/body/div[2]/div[3]/div/ul/li[4]/a")).Click();
                        Thread.Sleep(2000);
                        gc.CreatePdf(orderNumber, ParcelID, "Valuation", driver, "AR", "Benton");
                    }
                    catch { }
                    string              title1 = "", value1 = "", value2 = "";
                    IWebElement         Propinfo2   = driver.FindElement(By.XPath("//*[@id='Valuation']/div/div[2]/table/tbody"));
                    IList <IWebElement> TRPropinfo2 = Propinfo2.FindElements(By.TagName("tr"));
                    IList <IWebElement> AherfProp1;
                    foreach (IWebElement row1 in TRPropinfo2)
                    {
                        AherfProp1 = row1.FindElements(By.TagName("td"));
                        if (!row1.Text.Contains("Entry Appraised Assessed"))
                        {
                            if (AherfProp1.Count != 0 && AherfProp1.Count == 3 && AherfProp1[0].Text.Trim() != "")
                            {
                                title1 += AherfProp1[0].Text + "~";
                            }
                            if (AherfProp1.Count != 0 && AherfProp1.Count == 2 && AherfProp1[0].Text.Trim() != "")
                            {
                                title1 += AherfProp1[0].Text + "~";
                            }
                            if (AherfProp1.Count != 0 && AherfProp1.Count == 3 && AherfProp1[0].Text.Trim() != "")
                            {
                                value1 += AherfProp1[1].Text + "~";
                                value2 += AherfProp1[2].Text + "~";
                            }
                            if (AherfProp1.Count != 0 && AherfProp1.Count == 2 && AherfProp1[0].Text.Trim() != "")
                            {
                                value2 += AherfProp1[1].Text + "~";
                                //value2 += AherfProp1[2].Text + "~";
                            }

                            value1 = value1.TrimEnd('~');
                            value2 = value2.TrimEnd('~');
                            title1 = title1.TrimEnd('~').Replace(":", " ").Trim();
                            gc.insert_date(orderNumber, ParcelID, 1458, title1.Trim() + "~" + value1.Trim() + "~" + value2.Trim(), 1, DateTime.Now);
                            title1 = ""; value1 = ""; value2 = "";
                        }
                    }
                    //Tax Authority Details
                    try
                    {
                        driver.Navigate().GoToUrl("https://propertytax.ark.org/benton/index.php");

                        string Taxing_Authority1 = driver.FindElement(By.XPath("//*[@id='app-container']/div[3]/h4")).Text;
                        Taxing_Authority = GlobalClass.After(Taxing_Authority1, "MAIN BRANCH").Trim();
                        gc.CreatePdf(orderNumber, ParcelID, "Tax Authority1", driver, "AR", "Benton");
                    }
                    catch { }


                    //Tax Information Details
                    for (int i = 1; i < 4; i++)
                    {
                        driver.Navigate().GoToUrl("https://www.arcountydata.com/propsearch.asp");
                        Thread.Sleep(2000);
                        IWebElement yearrrs      = driver.FindElement(By.XPath("//*[@id='SearchPanel']/div/form/div[1]/div[4]/select"));
                        string      stryearsplit = yearrrs.Text.Replace("                    \r\n                    ", "");
                        string[]    yearsplit    = stryearsplit.Trim().Replace("\n", "").Split('\r');

                        IWebElement   newyears = driver.FindElement(By.XPath("//*[@id='SearchPanel']/div/form/div[1]/div[4]/select"));
                        SelectElement newss    = new SelectElement(driver.FindElement(By.XPath("//*[@id='SearchPanel']/div/form/div[1]/div[4]/select")));
                        newss.SelectByText(yearsplit[i]);
                        driver.FindElement(By.XPath("//*[@id='SearchPanel']/div/form/div[2]/div/input[1]")).Clear();
                        driver.FindElement(By.XPath("//*[@id='SearchPanel']/div/form/div[2]/div/input[1]")).SendKeys(ParcelID);
                        driver.FindElement(By.Id("searchy")).Click();
                        Thread.Sleep(2000);
                        //gc.CreatePdf(orderNumber, ParcelID, "Tax Search Record1", driver, "AR", "Benton");
                        try
                        {
                            string Nodata = driver.FindElement(By.XPath("/html/body/div[2]/div[3]")).Text;
                            if (Nodata.Contains("No Records Returned"))
                            {
                                driver.FindElement(By.Id("SearchClose")).Click();
                                Thread.Sleep(2000);
                                newyears = driver.FindElement(By.XPath("//*[@id='SearchPanel']/div/form/div[1]/div[4]/select"));
                                SelectElement newsss = new SelectElement(driver.FindElement(By.XPath("//*[@id='SearchPanel']/div/form/div[1]/div[4]/select")));
                                i++;
                                newsss.SelectByText(yearsplit[i]);
                                driver.FindElement(By.XPath("//*[@id='SearchPanel']/div/form/div[2]/div/input[1]")).Clear();
                                driver.FindElement(By.XPath("//*[@id='SearchPanel']/div/form/div[2]/div/input[1]")).SendKeys(ParcelID);
                                driver.FindElement(By.Id("searchy")).Click();
                                Thread.Sleep(2000);
                            }
                        }
                        catch { }
                        try
                        {
                            driver.FindElement(By.XPath("/html/body/div[2]/table/tbody/tr[2]/td[1]")).Click();
                            Thread.Sleep(2000);
                            gc.CreatePdf(orderNumber, ParcelID, "Tax Search Record2", driver, "AR", "Benton");
                        }
                        catch { }
                        try
                        {
                            IWebElement         IAddressSearch1 = driver.FindElement(By.XPath("/html/body/div[2]/table/tbody/tr[2]/td[1]"));
                            IJavaScriptExecutor js1             = driver as IJavaScriptExecutor;
                            js1.ExecuteScript("arguments[0].click();", IAddressSearch1);
                            Thread.Sleep(2000);
                            gc.CreatePdf(orderNumber, ParcelID, "Tax Search Record2", driver, "AR", "Benton");
                        }
                        catch { }
                        //Delinquent Details
                        string delininfo = "";
                        try
                        {
                            string delinquentd = driver.FindElement(By.XPath("/html/body/div[2]/table[1]/tbody/tr[14]/td")).Text.Trim();
                            if (delinquentd.Contains("This property has delinquent taxes."))
                            {
                                delininfo = "For tax amount due, you must call the Collector's Office.";
                                gc.insert_date(orderNumber, ParcelID, 1626, delininfo, 1, DateTime.Now);
                            }
                        }
                        catch { }

                        //Proof Of Payment Download
                        try
                        {
                            string current1 = driver.CurrentWindowHandle;
                            driver.FindElement(By.XPath("/html/body/div[2]/table[2]/tbody/tr[3]/td[9]/a")).Click();
                            Thread.Sleep(2000);

                            driver.SwitchTo().Window(driver.WindowHandles.Last());
                            Thread.Sleep(5000);
                            gc.CreatePdf(orderNumber, ParcelID, "Proof Of Payment1", driver, "AR", "Benton");
                            driver.SwitchTo().Window(current1);
                            driver.FindElement(By.XPath("/html/body/div[2]/table[2]/tbody/tr[4]/td[9]/a")).Click();
                            Thread.Sleep(2000);
                            driver.SwitchTo().Window(driver.WindowHandles.Last());
                            Thread.Sleep(5000);
                            gc.CreatePdf(orderNumber, ParcelID, "Proof Of Payment2", driver, "AR", "Benton");
                            driver.SwitchTo().Window(current1);
                            Thread.Sleep(3000);
                        }
                        catch { }
                        //Current Tax Details Table
                        //string Parcel = "", Taxyearbook = "", OwnershipInformation = "", PropertyAddress = "", BillingInformation = "", TotalAcres = "", TimberAcres = "", SecTwpRng = "", Subdivision = "", LegalDescription = "", SchoolDistrict = "", TaxStatus = "", Over65 = "", YearBuilt = "";
                        string Taxyear = "";
                        try
                        {
                            string Taxyear1 = driver.FindElement(By.XPath("/html/body/div[2]/table[1]/tbody/tr[3]/td[2]")).Text.Trim();
                            Taxyear = GlobalClass.Before(Taxyear1, "\r\n").Trim();
                            string              Taxtitle = "", Taxvalue = "";
                            IWebElement         Taxinfo1   = driver.FindElement(By.XPath("/html/body/div[2]/table[1]/tbody"));
                            IList <IWebElement> TRTaxinfo1 = Taxinfo1.FindElements(By.TagName("tr"));
                            IList <IWebElement> AherfTax;
                            foreach (IWebElement Tax in TRTaxinfo1)
                            {
                                AherfTax = Tax.FindElements(By.TagName("td"));

                                if (AherfTax.Count != 0 && AherfTax.Count == 2 && AherfTax[0].Text.Trim() != "" && !Tax.Text.Contains("View Parcel") && !Tax.Text.Contains("Parcel #:") && !Tax.Text.Contains("Proof Of Payment"))
                                {
                                    Taxtitle += AherfTax[0].Text.Replace("\r\n", "").Replace(":", "").Replace("?", "") + "~";
                                    Taxvalue += AherfTax[1].Text.Replace("\r\n", " ").Replace("Current", "").Replace(":", "").Replace("?", "") + "~";
                                }
                                if (AherfTax.Count != 0 && AherfTax.Count == 4 && AherfTax[0].Text.Trim() != "" && !Tax.Text.Contains("Parcel #:"))
                                {
                                    Taxtitle += AherfTax[0].Text.Replace("\r\n", "").Replace(":", "").Replace("?", "") + "~";
                                    Taxvalue += AherfTax[1].Text.Replace("\r\n", "").Replace("Current", "").Replace(":", "").Replace("?", "").Replace("Proof Of Payment", "") + "~";
                                }
                            }
                            Taxtitle = Taxtitle.TrimEnd('~').Replace("/", "");
                            Taxvalue = Taxvalue.TrimEnd('~');
                            db.ExecuteQuery("update data_field_master set Data_Fields_Text='" + Taxtitle.Trim() + "~" + "Tax Authority" + "' where Id = '" + 1460 + "'");
                            gc.insert_date(orderNumber, ParcelID, 1460, Taxvalue.Trim() + "~" + Taxing_Authority, 1, DateTime.Now);
                            Taxtitle = ""; Taxvalue = "";
                            gc.CreatePdf(orderNumber, ParcelID, "Tax Page" + Taxyear, driver, "AR", "Benton");
                        }
                        catch { }
                        //Tax Information Details Table

                        try
                        {
                            string              Taxtype = "", Taxdescription = "", District = "", Exempt = "", Assessedvalue = "", Taxowed = "", Taxpaid = "", Balance = "";
                            IWebElement         Bigdata4   = driver.FindElement(By.XPath("/html/body/div[2]/table[3]/tbody"));
                            IList <IWebElement> TRBigdata4 = Bigdata4.FindElements(By.TagName("tr"));
                            IList <IWebElement> TDBigdata4;
                            foreach (IWebElement row4 in TRBigdata4)
                            {
                                TDBigdata4 = row4.FindElements(By.TagName("td"));

                                if (TDBigdata4.Count != 0 && TDBigdata4.Count == 8 && !row4.Text.Contains("Tax Type"))
                                {
                                    Taxtype        = TDBigdata4[0].Text;
                                    Taxdescription = TDBigdata4[1].Text;
                                    District       = TDBigdata4[2].Text;
                                    Exempt         = TDBigdata4[3].Text;
                                    Assessedvalue  = TDBigdata4[4].Text;
                                    Taxowed        = TDBigdata4[5].Text;
                                    Taxpaid        = TDBigdata4[6].Text;
                                    Balance        = TDBigdata4[7].Text;
                                    string Taxinfodetails = Taxyear.Trim() + "~" + Taxtype.Trim() + "~" + Taxdescription.Trim() + "~" + District.Trim() + "~" + Exempt.Trim() + "~" + Assessedvalue.Trim() + "~" + Taxowed.Trim() + "~" + Taxpaid.Trim() + "~" + Balance.Trim();
                                    gc.insert_date(orderNumber, ParcelID, 1624, Taxinfodetails, 1, DateTime.Now);
                                }
                                if (TDBigdata4.Count != 0 && TDBigdata4.Count == 4 && !row4.Text.Contains("Tax Type"))
                                {
                                    Taxtype = TDBigdata4[0].Text;
                                    Taxowed = TDBigdata4[1].Text;
                                    Taxpaid = TDBigdata4[2].Text;
                                    Balance = TDBigdata4[3].Text;
                                    string Taxinfodetails = Taxyear.Trim() + "~" + Taxtype.Trim() + "~" + "" + "~" + "" + "~" + "" + "~" + "" + "~" + Taxowed.Trim() + "~" + Taxpaid.Trim() + "~" + Balance.Trim();
                                    gc.insert_date(orderNumber, ParcelID, 1624, Taxinfodetails, 1, DateTime.Now);
                                }
                            }
                        }
                        catch { }
                        //Same Data But Different Xpath
                        try
                        {
                            string              Taxtype = "", Taxdescription = "", District = "", Exempt = "", Assessedvalue = "", Taxowed = "", Taxpaid = "", Balance = "";
                            IWebElement         Bigdata4   = driver.FindElement(By.XPath("/html/body/div[2]/table[2]/tbody"));
                            IList <IWebElement> TRBigdata4 = Bigdata4.FindElements(By.TagName("tr"));
                            IList <IWebElement> TDBigdata4;
                            foreach (IWebElement row4 in TRBigdata4)
                            {
                                TDBigdata4 = row4.FindElements(By.TagName("td"));

                                if (TDBigdata4.Count != 0 && TDBigdata4.Count == 8 && !row4.Text.Contains("Tax Type"))
                                {
                                    Taxtype        = TDBigdata4[0].Text;
                                    Taxdescription = TDBigdata4[1].Text;
                                    District       = TDBigdata4[2].Text;
                                    Exempt         = TDBigdata4[3].Text;
                                    Assessedvalue  = TDBigdata4[4].Text;
                                    Taxowed        = TDBigdata4[5].Text;
                                    Taxpaid        = TDBigdata4[6].Text;
                                    Balance        = TDBigdata4[7].Text;
                                    string Taxinfodetails = Taxyear.Trim() + "~" + Taxtype.Trim() + "~" + Taxdescription.Trim() + "~" + District.Trim() + "~" + Exempt.Trim() + "~" + Assessedvalue.Trim() + "~" + Taxowed.Trim() + "~" + Taxpaid.Trim() + "~" + Balance.Trim();
                                    gc.insert_date(orderNumber, ParcelID, 1624, Taxinfodetails, 1, DateTime.Now);
                                }
                                if (TDBigdata4.Count != 0 && TDBigdata4.Count == 4 && !row4.Text.Contains("Tax Type"))
                                {
                                    Taxtype = TDBigdata4[0].Text;
                                    Taxowed = TDBigdata4[1].Text;
                                    Taxpaid = TDBigdata4[2].Text;
                                    Balance = TDBigdata4[3].Text;
                                    string Taxinfodetails = Taxyear.Trim() + "~" + Taxtype.Trim() + "~" + "" + "~" + "" + "~" + "" + "~" + "" + "~" + Taxowed.Trim() + "~" + Taxpaid.Trim() + "~" + Balance.Trim();
                                    gc.insert_date(orderNumber, ParcelID, 1624, Taxinfodetails, 1, DateTime.Now);
                                }
                            }
                        }
                        catch { }
                    }
                    //Payment Receipts Details Table
                    try
                    {
                        string              Receipt = "", Book = "", TaxYear = "", Receiptdate = "", Cashamt = "", Checkamt = "", Creditamt = "", Total = "";
                        IWebElement         Bigdata3   = driver.FindElement(By.XPath("/html/body/div[2]/table[2]/tbody"));
                        IList <IWebElement> TRBigdata3 = Bigdata3.FindElements(By.TagName("tr"));
                        IList <IWebElement> TDBigdata3;
                        foreach (IWebElement row3 in TRBigdata3)
                        {
                            TDBigdata3 = row3.FindElements(By.TagName("td"));

                            if (TDBigdata3.Count != 0 && TDBigdata3.Count == 9 && !row3.Text.Contains("Receipt #"))
                            {
                                Receipt     = TDBigdata3[0].Text;
                                Book        = TDBigdata3[1].Text;
                                TaxYear     = TDBigdata3[2].Text;
                                Receiptdate = TDBigdata3[3].Text;
                                Cashamt     = TDBigdata3[4].Text;
                                Checkamt    = TDBigdata3[5].Text;
                                Creditamt   = TDBigdata3[6].Text;
                                Total       = TDBigdata3[7].Text;
                                string Paymentreceiptdetails = Receipt.Trim() + "~" + Book.Trim() + "~" + TaxYear.Trim() + "~" + Receiptdate.Trim() + "~" + Cashamt.Trim() + "~" + Checkamt.Trim() + "~" + Creditamt.Trim() + "~" + Total.Trim();
                                gc.insert_date(orderNumber, ParcelID, 1623, Paymentreceiptdetails, 1, DateTime.Now);
                            }
                        }
                    }
                    catch { }

                    //All Years Screeshot
                    driver.Navigate().GoToUrl("https://www.arcountydata.com/propsearch.asp");
                    Thread.Sleep(2000);
                    IWebElement   newyears1 = driver.FindElement(By.XPath("//*[@id='SearchPanel']/div/form/div[1]/div[4]/select"));
                    SelectElement newss1    = new SelectElement(driver.FindElement(By.XPath("//*[@id='SearchPanel']/div/form/div[1]/div[4]/select")));
                    newss1.SelectByText("All Years");
                    driver.FindElement(By.Id("searchy")).Click();
                    Thread.Sleep(2000);
                    gc.CreatePdf(orderNumber, ParcelID, "All Years", driver, "AR", "Benton");
                    TaxTime     = DateTime.Now.ToString("HH:mm:ss");
                    LastEndTime = DateTime.Now.ToString("HH:mm:ss");
                    gc.insert_TakenTime(orderNumber, "AR", "Benton", StartTime, AssessmentTime, TaxTime, CitytaxTime, LastEndTime);
                    driver.Quit();
                    gc.mergpdf(orderNumber, "AR", "Benton");
                    return("Data Inserted Successfully");
                }
                catch (Exception ex)
                {
                    driver.Quit();
                    throw ex;
                }
            }
        }
        public string FTP_Forsyth(string streetno, string direction, string streetname, string streetype, string unitno, string ownername, string parcelNumber, string searchType, string orderNumber, string directParcel)
        {
            GlobalClass.global_orderNo             = orderNumber;
            HttpContext.Current.Session["orderNo"] = orderNumber;
            GlobalClass.global_parcelNo            = parcelNumber;
            List <string> multiparcel = new List <string>();
            string        StartTime = "", AssessmentTime = "", TaxTime = "", CitytaxTime = "", LastEndTime = "";

            var driverService = PhantomJSDriverService.CreateDefaultService();

            driverService.HideCommandPromptWindow = true;
            using (driver = new PhantomJSDriver())
            {
                StartTime = DateTime.Now.ToString("HH:mm:ss");

                driver.Navigate().GoToUrl("http://tellus.co.forsyth.nc.us/lrcpwa/SearchProperty.aspx");
                Thread.Sleep(2000);

                try
                {
                    if (searchType == "titleflex")
                    {
                        string address = streetno + " " + direction + " " + streetname + " " + streetype + " " + unitno;
                        gc.TitleFlexSearch(orderNumber, parcelNumber, "", address, "NC", "Forsyth");
                        if ((HttpContext.Current.Session["TitleFlex_Search"] != null && HttpContext.Current.Session["TitleFlex_Search"].ToString() == "Yes"))
                        {
                            driver.Quit();
                            return("MultiParcel");
                        }
                        else if (HttpContext.Current.Session["titleparcel"].ToString() == "")
                        {
                            HttpContext.Current.Session["Nodata_NCForsyth"] = "Yes";
                            driver.Quit();
                            return("No Data Found");
                        }
                        parcelNumber = HttpContext.Current.Session["titleparcel"].ToString();
                        searchType   = "parcel";
                    }

                    if (searchType == "address")
                    {
                        driver.FindElement(By.XPath("//*[@id='panelSummary']/li[2]/a")).SendKeys(Keys.Enter);
                        Thread.Sleep(2000);
                        driver.FindElement(By.Id("ctl00_ContentPlaceHolder1_StreetNumberTextBox")).SendKeys(streetno);
                        driver.FindElement(By.Id("ctl00_ContentPlaceHolder1_StreetNameTextBox")).SendKeys(streetname);
                        gc.CreatePdf_WOP(orderNumber, "SearchAddressBefore", driver, "NC", "Forsyth");
                        driver.FindElement(By.Id("ctl00_ContentPlaceHolder1_AddressButton")).SendKeys(Keys.Enter);
                        gc.CreatePdf_WOP(orderNumber, "SearchAddressAfter", driver, "NC", "Forsyth");
                        Thread.Sleep(2000);

                        string mul = driver.FindElement(By.XPath("//*[@id='aspnetForm']/div[3]/table/tbody/tr[2]/td[2]/div/div/div/div/table/tbody/tr[1]/td[2]/span")).Text;
                        mul = WebDriverTest.Before(mul, "Records").Trim();

                        int i, j = 2;
                        if ((mul != "1") && (mul != "0"))
                        {
                            int iRowsCount = driver.FindElements(By.XPath("//*[@id='ctl00_ContentPlaceHolder1_streetDictionaryResultsGridView']/tbody/tr")).Count;
                            for (i = 2; i <= iRowsCount; i++)
                            {
                                if (j >= 2 && i != 2)
                                {
                                    IWebElement checkbox1 = driver.FindElement(By.XPath("//*[@id='ctl00_ContentPlaceHolder1_streetDictionaryResultsGridView_ctl0" + j + "_CheckBox1']"));
                                    // checkbox.Clear();
                                    checkbox1.Click();
                                    Thread.Sleep(1000);
                                    j++;
                                }
                                IWebElement checkbox = driver.FindElement(By.XPath("//*[@id='ctl00_ContentPlaceHolder1_streetDictionaryResultsGridView_ctl0" + i + "_CheckBox1']"));
                                // checkbox.Clear();
                                checkbox.Click();
                                Thread.Sleep(1000);
                                driver.FindElement(By.Id("ctl00_ContentPlaceHolder1_StreetDictionarySearchButton")).SendKeys(Keys.Enter);
                                Thread.Sleep(1000);
                                string mul1 = driver.FindElement(By.XPath("//*[@id='aspnetForm']/div[3]/table/tbody/tr[2]/td[2]/div/div/div/div/table/tbody/tr[1]/td[2]/span")).Text;
                                mul1 = GlobalClass.Before(mul1, " Records Matched Search Criteria").Trim();
                                int count = Convert.ToInt32(mul1);
                                if (count > 0)
                                {   //multi parcel
                                    gc.CreatePdf_WOP(orderNumber, "Multiparcel Result", driver, "NC", "Forsyth");
                                    IWebElement         tbmulti2 = driver.FindElement(By.XPath("//*[@id='ctl00_ContentPlaceHolder1_ParcelStreetsGridView']/tbody"));
                                    IList <IWebElement> TRmulti2 = tbmulti2.FindElements(By.TagName("tr"));
                                    IList <IWebElement> TDmulti2;
                                    int rescount = TRmulti2.Count;

                                    foreach (IWebElement row in TRmulti2)
                                    {
                                        TDmulti2 = row.FindElements(By.TagName("td"));

                                        if (TDmulti2.Count != 0 && TDmulti2[1].Text.Trim() != "" && !row.Text.Contains("Pfx") && TDmulti2.Count == 9)
                                        {
                                            IWebElement multiparcellink = TDmulti2[0].FindElement(By.TagName("a"));
                                            string      strmulti        = multiparcellink.GetAttribute("href");
                                            multiparcel.Add(strmulti);
                                            string multi1 = TDmulti2[1].Text + " " + TDmulti2[4].Text + "~" + TDmulti2[8].Text;

                                            if (TDmulti2[1].Text == streetno || streetno == "0")
                                            {
                                                gc.insert_date(orderNumber, TDmulti2[0].Text, 616, multi1, 1, DateTime.Now);
                                            }
                                            //  Owner~address
                                        }
                                    }
                                }
                                driver.Navigate().Back();
                                Thread.Sleep(1000);
                            }

                            if (multiparcel.Count > 1)
                            {
                                HttpContext.Current.Session["multiparcel_Forsyth"] = "Yes";
                                driver.Quit();
                                return("MultiParcel");
                            }
                            else
                            {
                                foreach (string real in multiparcel)
                                {
                                    driver.Navigate().GoToUrl(real);
                                    Thread.Sleep(4000);
                                }
                            }
                        }

                        else
                        {
                            try
                            {
                                driver.FindElement(By.XPath("//*[@id='ctl00_ContentPlaceHolder1_ParcelStreetsGridView']/tbody/tr[2]/td[1]/a")).SendKeys(Keys.Enter);
                                Thread.Sleep(2000);
                            }
                            catch { }
                        }

                        try
                        {
                            //No Data Found
                            string nodata = driver.FindElement(By.XPath("//*[@id='aspnetForm']/div[3]/table/tbody/tr[2]/td[2]/div/div/div/div/table/tbody/tr[1]/td[2]/span")).Text;
                            if (nodata.Contains("0 Records Matched Search Criteria"))
                            {
                                HttpContext.Current.Session["Nodata_NCForsyth"] = "Yes";
                                driver.Quit();
                                return("No Data Found");
                            }
                        }
                        catch { }
                    }

                    if (searchType == "parcel")
                    {
                        driver.FindElement(By.XPath("//*[@id='panelSummary']/li[4]/a")).Click();
                        Thread.Sleep(4000);
                        IWebElement text = driver.FindElement(By.XPath("//*[@id='ctl00_ContentPlaceHolder1_PINNumberTextBox']"));
                        parcelNumber = parcelNumber.Replace("-", "");
                        text.Clear();
                        IWebElement         add           = driver.FindElement(By.XPath("//*[@id='PIN']/div/div/div/center/table/tbody/tr[2]/td/div/div"));
                        IList <IWebElement> MultiOwnerRow = add.FindElements(By.TagName("input"));
                        foreach (IWebElement row1 in MultiOwnerRow)
                        {
                            row1.SendKeys(parcelNumber);
                        }
                        gc.CreatePdf(orderNumber, parcelNumber, "Parcel Search Input Passed", driver, "NC", "Forsyth");
                        // text.SendKeys(parcelNumber);
                        driver.FindElement(By.XPath("//*[@id='ctl00_ContentPlaceHolder1_PinButton']")).Click();
                        Thread.Sleep(3000);
                        gc.CreatePdf_WOP(orderNumber, "Parcel Search Result", driver, "NC", "Forsyth");
                        try
                        {
                            //No Data Found
                            string nodata = driver.FindElement(By.Id("ctl00_PageHeader1_ErrorMessageLabel")).Text;
                            if (nodata.Contains("No Records Found"))
                            {
                                HttpContext.Current.Session["Nodata_NCForsyth"] = "Yes";
                                driver.Quit();
                                return("No Data Found");
                            }
                        }
                        catch { }
                    }
                    if (searchType == "ownername")
                    {
                        string firstname = "", lastname = "";
                        if (ownername.Contains(' '))
                        {
                            string[] name = ownername.Split(' ');
                            firstname = name[0]; lastname = name[1];
                            if (!ownername.Contains(','))
                            {
                                ownername = firstname + "," + lastname;
                            }
                        }
                        driver.FindElement(By.XPath("//*[@id='ctl00_ContentPlaceHolder1_OwnerTextBox']")).SendKeys(ownername);
                        driver.FindElement(By.Id("ctl00_ContentPlaceHolder1_OwnerButton")).SendKeys(Keys.Enter);
                        Thread.Sleep(2000);
                        string mul = driver.FindElement(By.XPath("//*[@id='aspnetForm']/div[3]/table/tbody/tr[2]/td[2]/div/div/div/div/table/tbody/tr[1]/td[2]/span")).Text;
                        mul = WebDriverTest.Before(mul, "Records").Trim();

                        if ((mul != "1") && (mul != "0"))
                        {
                            //multi parcel
                            gc.CreatePdf_WOP(orderNumber, "Multiparcel Result", driver, "NC", "Forsyth");
                            IWebElement         tbmulti = driver.FindElement(By.XPath(" //*[@id='ctl00_ContentPlaceHolder1_OwnerSearchResultsGridView']/tbody"));
                            IList <IWebElement> TRmulti = tbmulti.FindElements(By.TagName("tr"));
                            int TRmulticount            = TRmulti.Count;
                            int maxCheck = 0;
                            IList <IWebElement> TDmulti;
                            foreach (IWebElement row in TRmulti)
                            {
                                if (maxCheck <= 25)
                                {
                                    TDmulti = row.FindElements(By.TagName("td"));
                                    if (TDmulti.Count != 0)
                                    {
                                        if (maxCheck <= 15)
                                        {
                                            string multi1 = TDmulti[3].Text + "~" + TDmulti[2].Text;
                                            gc.insert_date(orderNumber, TDmulti[1].Text, 616, multi1, 1, DateTime.Now);
                                        }
                                    }
                                    maxCheck++;
                                }
                            }

                            if (TRmulti.Count > 25)
                            {
                                HttpContext.Current.Session["multiParcel_Forsyth_Multicount"] = "Maximum";
                                driver.Quit();
                                return("Maximum");
                            }
                            else
                            {
                                HttpContext.Current.Session["multiparcel_Forsyth"] = "Yes";
                            }
                            driver.Quit();
                            return("MultiParcel");
                        }
                        try
                        {
                            //No Data Found
                            string nodata = driver.FindElement(By.XPath("//*[@id='aspnetForm']/div[3]/table/tbody/tr[2]/td[2]/div/div/div/div/table/tbody/tr[1]/td[2]/span")).Text;
                            if (nodata.Contains("0 Records Matched Search Criteria"))
                            {
                                HttpContext.Current.Session["Nodata_NCForsyth"] = "Yes";
                                driver.Quit();
                                return("No Data Found");
                            }
                        }
                        catch { }
                    }

                    //Property Details

                    string TaxYear = "", REID = "", ParcelID = "", PropertyOwner = "", PropertyAddress = "", LegalDescription = "", MailingAddress = "", OldMapNumber = "", MarketArea = "", Township = "", PlanningJurisdiction = "", City = "", FireDistrict = "", SpecialDistrict = "", PropertyClass = "", YearBuilt = "";
                    //driver.FindElement(By.XPath("//*[@id='ctl00_ContentPlaceHolder1_ParcelStreetsGridView']/tbody/tr[2]/td[1]/a")).SendKeys(Keys.Enter);
                    //Thread.Sleep(2000);

                    string propbulktext = driver.FindElement(By.XPath("//*[@id='aspnetForm']/div[3]/table/tbody/tr[2]/td[2]/div[1]/div/div/div[2]/div[1]/div[1]/table/tbody/tr[1]/td/table")).Text;

                    TaxYear  = driver.FindElement(By.Id("ctl00_PageHeader1_TaxYear")).Text;
                    REID     = driver.FindElement(By.Id("ctl00_PageHeader1_ReidLabelInfo")).Text;
                    ParcelID = driver.FindElement(By.Id("ctl00_PageHeader1_PinLabelInfo")).Text;

                    PropertyOwner    = driver.FindElement(By.XPath("//*[@id='ctl00_PageHeader1_DetailsView1']/tbody/tr/td")).Text;
                    PropertyAddress  = driver.FindElement(By.Id("ctl00_PageHeader1_LocationAddressLabelInfo")).Text;
                    LegalDescription = driver.FindElement(By.Id("ctl00_PageHeader1_PropertyDescriptionLabelInfo")).Text;
                    MailingAddress   = driver.FindElement(By.Id("ctl00_PageHeader1_DetailsView4")).Text.Replace("\r\n", " ").Trim();
                    gc.CreatePdf(orderNumber, ParcelID, "Property  and Assessment Details", driver, "NC", "Forsyth");

                    string bulktext = driver.FindElement(By.Id("ctl00_ContentPlaceHolder1_DetailsView5")).Text;
                    OldMapNumber         = gc.Between(bulktext, "Old Map# ", "Market Area ").Trim();
                    MarketArea           = gc.Between(bulktext, "Market Area ", "Township ").Trim();
                    Township             = gc.Between(bulktext, "Township ", "Planning Jurisdiction").Trim();
                    PlanningJurisdiction = gc.Between(bulktext, "Planning Jurisdiction", "City").Trim();
                    City            = gc.Between(bulktext, "City", "Fire District").Trim();
                    FireDistrict    = gc.Between(bulktext, "Fire District", "Spec District").Trim();
                    SpecialDistrict = gc.Between(bulktext, "Spec District", "Land Class").Trim();
                    PropertyClass   = gc.Between(bulktext, "Land Class", "History REID 1").Replace("\r\n", " ").Trim();


                    driver.FindElement(By.Id("ctl00_PageHeader1_BuildingsHyperLink")).SendKeys(Keys.Enter);
                    Thread.Sleep(2000);
                    gc.CreatePdf(orderNumber, ParcelID, "Building Details", driver, "NC", "Forsyth");
                    string yearbuilt = "";
                    try
                    {
                        yearbuilt = driver.FindElement(By.Id("ctl00_ContentPlaceHolder1_DetailsView4")).Text;
                        YearBuilt = gc.Between(yearbuilt, "Year Built", "Additions").Replace("\r\n", "").Trim();
                    }
                    catch { }
                    string propertydetails = TaxYear + "~" + REID + "~" + PropertyOwner + "~" + PropertyAddress + "~" + LegalDescription + "~" + MailingAddress + "~" + OldMapNumber + "~" + MarketArea + "~" + Township + "~" + PlanningJurisdiction + "~" + City + "~" + FireDistrict + "~" + SpecialDistrict + "~" + PropertyClass + "~" + YearBuilt;
                    gc.insert_date(orderNumber, ParcelID, 603, propertydetails, 1, DateTime.Now);

                    //Assessment Details

                    string            currentHandle     = driver.CurrentWindowHandle;
                    IWebElement       element           = driver.FindElement(By.LinkText("Print Property Info"));
                    PopupWindowFinder finder            = new PopupWindowFinder(driver);
                    string            popupWindowHandle = finder.Click(element);
                    driver.SwitchTo().Window(popupWindowHandle);
                    gc.CreatePdf(orderNumber, ParcelID, "Assessment Details", driver, "NC", "Forsyth");
                    Thread.Sleep(3000);
                    IWebElement         asstableElement    = driver.FindElement(By.XPath("//*[@id='headerPlaceholder']/div/div[4]/div/table/tbody"));
                    IList <IWebElement> asstableElementRow = asstableElement.FindElements(By.TagName("tr"));
                    IList <IWebElement> asstableElementRowTD;
                    IList <IWebElement> asstableElementRowTH;
                    var assesscolumn = ""; var assessvalue = "";
                    foreach (IWebElement rowid in asstableElementRow)
                    {
                        asstableElementRowTD = rowid.FindElements(By.TagName("td"));
                        asstableElementRowTH = rowid.FindElements(By.TagName("th"));
                        if (asstableElementRowTD.Count != 0 && !rowid.Text.Contains("Property Value") && rowid.Text != "")
                        {
                            if (asstableElementRowTD[0].Text != " ")
                            {
                                assesscolumn += asstableElementRowTH[0].Text + "~";
                                assessvalue  += asstableElementRowTD[0].Text + "~";
                            }
                        }
                    }
                    assesscolumn = assesscolumn.TrimEnd('~');
                    assessvalue  = assessvalue.TrimEnd('~');

                    DBconnection dbconn = new DBconnection();
                    dbconn.ExecuteQuery("update data_field_master set Data_Fields_Text='" + assesscolumn + "' where Id = '" + 605 + "'");
                    gc.insert_date(orderNumber, ParcelID, 605, assessvalue, 1, DateTime.Now);



                    AssessmentTime = DateTime.Now.ToString("HH:mm:ss");

                    //Tax Information Details
                    driver.Navigate().GoToUrl("http://tellus.co.forsyth.nc.us/PublicWebAccess/BillSearchResults.aspx?");
                    Thread.Sleep(2000);

                    string Par = ".000";
                    parcelNumber = ParcelID + Par;

                    IWebElement   ISelect = driver.FindElement(By.Id("lookupCriterion"));
                    SelectElement sSelect = new SelectElement(ISelect);
                    sSelect.SelectByText("Parcel Number");
                    driver.FindElement(By.Id("txtSearchString")).SendKeys(parcelNumber);
                    gc.CreatePdf(orderNumber, ParcelID, "Tax Search  Input Passed", driver, "NC", "Forsyth");
                    driver.FindElement(By.XPath("//*[@id='btnGo']")).SendKeys(Keys.Enter);
                    Thread.Sleep(2000);
                    gc.CreatePdf(orderNumber, ParcelID, "Tax Search Result", driver, "NC", "Forsyth");


                    //Tax Histry Details
                    IWebElement         tdHistry = driver.FindElement(By.XPath("//*[@id='tblSearchResults']"));
                    IList <IWebElement> TrHistry = tdHistry.FindElements(By.TagName("tr"));
                    IList <IWebElement> TDHistry;
                    IList <IWebElement> TDHistryth;
                    foreach (IWebElement row in TrHistry)
                    {
                        TDHistry   = row.FindElements(By.TagName("td"));
                        TDHistryth = row.FindElements(By.TagName("tr"));
                        if (!row.Text.Contains("Bill #"))
                        {
                            if (TDHistry.Count == 7)
                            {
                                string TaxHistryDetails = TDHistry[0].Text + "~" + TDHistry[1].Text + "~" + TDHistry[2].Text + "~" + TDHistry[3].Text + "~" + TDHistry[4].Text + "~" + TDHistry[5].Text + "~" + TDHistry[6].Text;
                                gc.insert_date(orderNumber, ParcelID, 612, TaxHistryDetails, 1, DateTime.Now);
                            }
                            else if (row.Text.Contains("Total"))
                            {
                                string total            = GlobalClass.After(row.Text, "Total:");
                                string TaxHistryDetails = "" + "~" + "" + "~" + "" + "~" + "" + "~" + "" + "~" + "Total" + "~" + total;
                                gc.insert_date(orderNumber, ParcelID, 612, TaxHistryDetails, 1, DateTime.Now);
                            }
                        }
                    }

                    List <string> strTaxRealestate = new List <string>();
                    try
                    {
                        IWebElement         ITaxinfoDetails = driver.FindElement(By.XPath("//*[@id='G_dgResults']/tbody"));
                        IList <IWebElement> ITaxinfoRealRow = ITaxinfoDetails.FindElements(By.TagName("tr"));
                        IList <IWebElement> ITaxinfoRealTd;
                        foreach (IWebElement ItaxinfoReal in ITaxinfoRealRow)
                        {
                            ITaxinfoRealTd = ItaxinfoReal.FindElements(By.TagName("td"));
                            if (ITaxinfoRealTd.Count != 0 && strTaxRealestate.Count < 3)
                            {
                                IWebElement ITaxBillCount = ITaxinfoRealTd[0].FindElement(By.TagName("a"));
                                string      strTaxReal    = ITaxBillCount.GetAttribute("href");
                                strTaxRealestate.Add(strTaxReal);
                            }
                        }
                    }
                    catch
                    {
                    }

                    foreach (string real in strTaxRealestate)
                    {
                        string TaxMailingAddress = "", RealValue = "", DeferredValue = "", UseValue = "", PersonalValue = "", ExemptExclusion = "", TotalAssessedValue = "", BillTaxYear = "", PropertyTax = "", BillStatus = "", BillFlag = "", BillNumber = "", OldBillNumber = "", OldAccountNumber = "", DueDate = "", InterestBegins = ""
                        , InterestAmount = "", TotalBilled = "", GoodThroughDate = "", LastPaymentDate = "", CurrentDue = "", TaxAuthority = "", DiscountPeriod = "";

                        driver.Navigate().GoToUrl(real);
                        Thread.Sleep(4000);
                        if (strTaxRealestate.Count != 0 && strTaxRealestate.Count == 3)
                        {
                            try
                            {
                                BillFlag = driver.FindElement(By.Id("lblBillFlag")).Text;
                                if (BillFlag.Contains("DELINQUENT"))
                                {
                                    IWebElement dt   = driver.FindElement(By.Id("interestCalDate_input"));
                                    string      date = dt.GetAttribute("value");

                                    DateTime G_Date       = Convert.ToDateTime(date);
                                    string   dateChecking = DateTime.Now.ToString("MM") + "/15/" + DateTime.Now.ToString("yyyy");

                                    if (G_Date < Convert.ToDateTime(dateChecking))
                                    {
                                        //end of the month
                                        date = new DateTime(Convert.ToInt16(DateTime.Now.ToString("yyyy")), Convert.ToInt16(Convert.ToInt16(DateTime.Now.ToString("MM"))), DateTime.DaysInMonth(Convert.ToInt16(DateTime.Now.ToString("yyyy")), Convert.ToInt16(DateTime.Now.ToString("MM")))).ToString("MM/dd/yyyy");
                                    }

                                    else if (G_Date > Convert.ToDateTime(dateChecking))
                                    {
                                        // nextEndOfMonth
                                        if ((Convert.ToInt16(Convert.ToInt16(DateTime.Now.ToString("MM"))) < 12))
                                        {
                                            date = new DateTime(Convert.ToInt16(DateTime.Now.ToString("yyyy")), Convert.ToInt16(Convert.ToInt16(DateTime.Now.ToString("MM")) + 1), DateTime.DaysInMonth(Convert.ToInt16(DateTime.Now.ToString("yyyy")), Convert.ToInt16(DateTime.Now.ToString("MM")) + 1)).ToString("MM/dd/yyyy");
                                        }
                                        else
                                        {
                                            int nxtYr = Convert.ToInt16(DateTime.Now.ToString("yyyy")) + 1;
                                            date = new DateTime(nxtYr, 1, DateTime.DaysInMonth(Convert.ToInt16(DateTime.Now.ToString("yyyy")), 1)).ToString("MM/dd/yyyy");
                                        }
                                    }

                                    Thread.Sleep(2000);
                                    dt.Clear();
                                    GoodThroughDate = date;
                                    driver.FindElement(By.Id("interestCalDate_input")).SendKeys(date);
                                    driver.FindElement(By.Id("btnRecalInterest")).SendKeys(Keys.Enter);
                                    //*[@id=""]
                                }
                                else
                                {
                                    GoodThroughDate = "";
                                }
                                TaxMailingAddress  = driver.FindElement(By.Id("lblMailingAddr")).Text;
                                RealValue          = driver.FindElement(By.Id("lblRealOriginal")).Text;
                                DeferredValue      = driver.FindElement(By.Id("lblDeferredOriginal")).Text;
                                UseValue           = driver.FindElement(By.Id("lblUseOriginal")).Text;
                                PersonalValue      = driver.FindElement(By.Id("lblPersonalOriginal")).Text;
                                ExemptExclusion    = driver.FindElement(By.Id("lblExemptOriginal")).Text;
                                TotalAssessedValue = driver.FindElement(By.Id("lblTotalValue")).Text;
                                BillTaxYear        = driver.FindElement(By.Id("lblBill")).Text;
                                BillTaxYear        = BillTaxYear.Substring(11, 4);
                                gc.CreatePdf(orderNumber, ParcelID, "Tax" + BillTaxYear, driver, "NC", "Forsyth");
                                PropertyTax      = driver.FindElement(By.Id("lblPropertyType")).Text;
                                BillStatus       = driver.FindElement(By.Id("lblBillStatus")).Text;
                                BillNumber       = driver.FindElement(By.Id("lblBill")).Text;
                                OldBillNumber    = driver.FindElement(By.Id("lblLegacyBillNum")).Text;
                                OldAccountNumber = driver.FindElement(By.Id("lblLegacyAccountNum")).Text;
                                DueDate          = driver.FindElement(By.Id("lblDueDate")).Text;
                                InterestBegins   = driver.FindElement(By.Id("lblInterest")).Text;
                                InterestAmount   = driver.FindElement(By.Id("lblInterestAmt")).Text;
                                TotalBilled      = driver.FindElement(By.Id("lblTotalAmountDue")).Text;
                                LastPaymentDate  = driver.FindElement(By.Id("lblLastPaymentDate")).Text;
                                CurrentDue       = driver.FindElement(By.Id("lblCurrentDue")).Text;

                                string discounttext = driver.FindElement(By.XPath("/html/body/table/tbody/tr[2]/td[2]/table[4]/tbody/tr/td/table")).Text;
                                if (discounttext.Contains("Discount Period"))
                                {
                                    DiscountPeriod = gc.Between(discounttext, "Discount Period:", "Correct if paid by").Replace("\r\n", "").Trim();
                                }
                                //DiscountPeriod= driver.FindElement(By.XPath("/html/body/table/tbody/tr[2]/td[2]/table[4]/tbody/tr/td/table/tbody/tr[1]/td[2]/font")).Text;
                                TaxAuthority = "Forsyth County Tax Collector P.O.Box 82 Winston - Salem, NC 27102";
                                string TaxInformationdetails = TaxMailingAddress + "~" + RealValue + "~" + DeferredValue + "~" + UseValue + "~" + PersonalValue + "~" + ExemptExclusion + "~" + TotalAssessedValue + "~" + BillTaxYear + "~" + PropertyTax + "~" + BillStatus + "~" + BillFlag + "~" + BillNumber + "~" + OldBillNumber + "~" + OldAccountNumber + "~" + DueDate + "~" + InterestBegins + "~" + InterestAmount + "~" + TotalBilled + "~" + LastPaymentDate + "~" + CurrentDue + "~" + DiscountPeriod + "~" + GoodThroughDate + "~" + TaxAuthority;
                                gc.insert_date(orderNumber, ParcelID, 610, TaxInformationdetails, 1, DateTime.Now);
                            }
                            catch { }
                        }

                        //Tax/Fee Distribution Details
                        IWebElement         tbmulti = driver.FindElement(By.XPath("//*[@id='dgShowResultRate']/tbody"));
                        IList <IWebElement> TRmulti = tbmulti.FindElements(By.TagName("tr"));

                        IList <IWebElement> TDmulti;
                        foreach (IWebElement row in TRmulti)
                        {
                            TDmulti = row.FindElements(By.TagName("td"));
                            if (!row.Text.Contains("Rate"))
                            {
                                if (TDmulti.Count == 4)
                                {
                                    string TaxDistribution = BillTaxYear + "~" + TDmulti[0].Text + "~" + TDmulti[1].Text + "~" + TDmulti[2].Text + "~" + TDmulti[3].Text;
                                    gc.insert_date(orderNumber, ParcelID, 611, TaxDistribution, 1, DateTime.Now);
                                }
                            }
                        }
                    }
                    TaxTime = DateTime.Now.ToString("HH:mm:ss");
                    driver.Quit();
                    gc.mergpdf(orderNumber, "NC", "Forsyth");
                    LastEndTime = DateTime.Now.ToString("HH:mm:ss");
                    gc.insert_TakenTime(orderNumber, "NC", "Forsyth", StartTime, AssessmentTime, TaxTime, CitytaxTime, LastEndTime);
                    return("Data Inserted Successfully");
                }
                catch (Exception ex)
                {
                    driver.Quit();
                    GlobalClass.LogError(ex, orderNumber);
                    throw ex;
                }
            }
        }
        public string FTP_SantaCruz(string Address, string unitno, string ownername, string parcelNumber, string searchType, string orderNumber, string directParcel)
        {
            GlobalClass.global_orderNo             = orderNumber;
            HttpContext.Current.Session["orderNo"] = orderNumber;
            GlobalClass.global_parcelNo            = parcelNumber;
            List <string> multiparcel = new List <string>();
            string        StartTime = "", AssessmentTime = "", TaxTime = "", CitytaxTime = "", LastEndTime = "";

            var driverService = PhantomJSDriverService.CreateDefaultService();

            driverService.HideCommandPromptWindow = true;
            using (driver = new PhantomJSDriver())
            {
                string        Parcel_Number = "", taxauthority1 = "", taxauthority = "";;
                List <string> strUrl = new List <string>();
                StartTime = DateTime.Now.ToString("HH:mm:ss");
                try
                {
                    driver.Navigate().GoToUrl(" http://www.co.santa-cruz.ca.us/Departments/TaxCollector.aspx");
                    Thread.Sleep(2000);
                    gc.CreatePdf_WOP(orderNumber, "Tax Authority Pdf", driver, "CA", "Santa Cruz");
                    taxauthority1 = driver.FindElement(By.XPath("//*[@id='dnn_ctr7661_HtmlModule_lblContent']/div/div[2]")).Text.Trim();
                    taxauthority  = GlobalClass.Before(taxauthority1, "FAX:").Trim();
                }
                catch { }


                driver.Navigate().GoToUrl("http://sccounty01.co.santa-cruz.ca.us/ASR/");
                Thread.Sleep(2000);

                try
                {
                    if (searchType == "titleflex")
                    {
                        gc.TitleFlexSearch(orderNumber, "", ownername, Address, "CA", "Santa Cruz");
                        if ((HttpContext.Current.Session["TitleFlex_Search"] != null && HttpContext.Current.Session["TitleFlex_Search"].ToString() == "Yes"))
                        {
                            driver.Quit();
                            return("MultiParcel");
                        }
                        else if (HttpContext.Current.Session["titleparcel"].ToString() == "")
                        {
                            HttpContext.Current.Session["Nodata_SantaCruzCA"] = "Yes";
                            driver.Quit();
                            return("No Data Found");
                        }
                        parcelNumber = HttpContext.Current.Session["titleparcel"].ToString();
                        searchType   = "parcel";
                    }
                    if (searchType == "address")
                    {
                        driver.FindElement(By.Id("txtSitus")).SendKeys(Address);
                        gc.CreatePdf_WOP(orderNumber, "Enter The Address Before", driver, "CA", "Santa Cruz");
                        driver.FindElement(By.Id("butSearch")).SendKeys(Keys.Enter);
                        Thread.Sleep(2000);
                        gc.CreatePdf_WOP(orderNumber, "Enter The Address After", driver, "CA", "Santa Cruz");


                        //Multiparcel
                        try
                        {
                            int                 count = 0;
                            IWebElement         Multiaddresstable1add = driver.FindElement(By.XPath("/html/body/center/table/tbody/tr/td/table/tbody/tr[6]/td/div/div/div[3]"));
                            IList <IWebElement> multiaddressrows      = Multiaddresstable1add.FindElements(By.TagName("div"));
                            IList <IWebElement> Multiaddressid;
                            foreach (IWebElement Multiaddress in multiaddressrows)
                            {
                                Multiaddressid = Multiaddress.FindElements(By.TagName("div"));
                                if (Multiaddressid.Count == 3 && !Multiaddress.Text.Contains("Parcel Info") && !Multiaddress.Text.Contains("APN"))
                                {
                                    string Multiparcelnumber  = Multiaddressid[0].Text;
                                    string OWnerclass         = Multiaddressid[2].Text;
                                    string Address1           = Multiaddressid[1].Text;
                                    string multiaddressresult = OWnerclass + "~" + Address1;
                                    gc.insert_date(orderNumber, Multiparcelnumber, 1088, multiaddressresult, 1, DateTime.Now);
                                    count++;
                                }
                            }
                            if (count > 1 && count < 26)
                            {
                                HttpContext.Current.Session["multiparcel_Santa Cruz"] = "Yes";
                                driver.Quit();
                                return("MultiParcel");
                            }
                            if (count > 25)
                            {
                                HttpContext.Current.Session["multiparcel_Santa Cruz_Maximum"] = "Maximum";
                                driver.Quit();
                                return("Maximum");
                            }
                        }
                        catch { }
                        try
                        {
                            //No Data Found
                            string nodata = driver.FindElement(By.XPath("//*[@id='pnlContainer']/form/table/tbody/tr[1]/td/span")).Text;
                            if (nodata.Contains("No parcels found for the entered address."))
                            {
                                HttpContext.Current.Session["Nodata_SantaCruzCA"] = "Yes";
                                driver.Quit();
                                return("No Data Found");
                            }
                        }
                        catch { }
                    }
                    if (searchType == "parcel")
                    {
                        parcelNumber = parcelNumber.Replace("-", "").Replace(" ", "").Replace("000", "").Trim();
                        driver.FindElement(By.Id("txtAPNNO")).SendKeys(parcelNumber);
                        gc.CreatePdf_WOP(orderNumber, "Enter The ParcelNumber Before", driver, "CA", "Santa Cruz");
                        driver.FindElement(By.Id("butSearch")).SendKeys(Keys.Enter);
                        Thread.Sleep(2000);
                        gc.CreatePdf_WOP(orderNumber, "Enter The Address After", driver, "CA", "Santa Cruz");
                        try
                        {
                            //No Data Found
                            string nodata = driver.FindElement(By.XPath("//*[@id='pnlContainer']/form/table/tbody/tr[1]/td/span")).Text;
                            if (nodata.Contains("No parcels found for the entered APN."))
                            {
                                HttpContext.Current.Session["Nodata_SantaCruzCA"] = "Yes";
                                driver.Quit();
                                return("No Data Found");
                            }
                        }
                        catch { }
                    }
                    //Property Details
                    IWebElement         IAddressSearch = driver.FindElement(By.XPath("/html/body/center/table/tbody/tr/td/table/tbody/tr[6]/td/div/div/div[3]/div/div[1]/a"));
                    IJavaScriptExecutor js             = driver as IJavaScriptExecutor;
                    js.ExecuteScript("arguments[0].click();", IAddressSearch);
                    Thread.Sleep(5000);
                    gc.CreatePdf(orderNumber, parcelNumber, "Property Info", driver, "CA", "Santa Cruz");

                    string ParcelNumber    = driver.FindElement(By.XPath("/html/body/center/table/tbody/tr/td/table/tbody/tr[6]/td/div[1]/div/div[3]/div/div[1]")).Text.Trim();
                    string PropertyAddress = driver.FindElement(By.XPath("/html/body/center/table/tbody/tr/td/table/tbody/tr[6]/td/div[1]/div/div[3]/div/div[2]")).Text.Trim();
                    string PropertyClass   = driver.FindElement(By.XPath("/html/body/center/table/tbody/tr/td/table/tbody/tr[6]/td/div[1]/div/div[3]/div/div[3]")).Text.Trim();

                    string propertydetails = PropertyAddress + "~" + PropertyClass;
                    gc.insert_date(orderNumber, ParcelNumber, 1042, propertydetails, 1, DateTime.Now);

                    //Assessment Details
                    string              yearwise = "", Assessment = "", yearwise1 = "";
                    IWebElement         Multiaddresstable = driver.FindElement(By.XPath("/html/body/center/table/tbody/tr/td/table/tbody/tr[6]/td/div[2]/div/div[3]/div[1]"));
                    IList <IWebElement> multiaddressrow   = Multiaddresstable.FindElements(By.TagName("div"));
                    foreach (IWebElement Multiassess in multiaddressrow)
                    {
                        string Yearassess = Multiassess.GetAttribute("title");
                        if (Yearassess != "")
                        {
                            Assessment += Multiassess.GetAttribute("title") + "~";
                            yearwise   += Multiassess.Text + "~";
                        }
                    }
                    Assessment = Assessment.TrimEnd('~');
                    yearwise   = yearwise.TrimEnd('~');
                    DBconnection dbconn = new DBconnection();
                    dbconn.ExecuteQuery("update data_field_master set Data_Fields_Text='" + Assessment + "' where Id = '" + 1053 + "'");
                    gc.insert_date(orderNumber, ParcelNumber, 1053, yearwise, 1, DateTime.Now);
                    IWebElement         Multiaddresstable1 = driver.FindElement(By.XPath("/html/body/center/table/tbody/tr/td/table/tbody/tr[6]/td/div[2]/div/div[3]/div[2]"));
                    IList <IWebElement> multiaddressrow1   = Multiaddresstable1.FindElements(By.TagName("div"));
                    foreach (IWebElement Multiaddress1 in multiaddressrow1)
                    {
                        string Yearassess = Multiaddress1.GetAttribute("title");
                        if (Yearassess != "")
                        {
                            yearwise1 += Multiaddress1.Text + "~";
                        }
                    }
                    yearwise1 = yearwise1.TrimEnd('~');
                    gc.insert_date(orderNumber, ParcelNumber, 1053, yearwise1, 1, DateTime.Now);

                    //Tax Information Details

                    driver.Navigate().GoToUrl("http://ttc.co.santa-cruz.ca.us/taxbills/");
                    string AnnualandTaxtypehistory = "";
                    driver.FindElement(By.Id("Parcel")).SendKeys(ParcelNumber);
                    gc.CreatePdf(orderNumber, ParcelNumber, "Enter ParcelNumber Before", driver, "CA", "Santa Cruz");
                    IWebElement         IAddressSearch1 = driver.FindElement(By.XPath("/html/body/table[1]/tbody/tr[2]/td[2]/table/tbody/tr[3]/td/table[1]/tbody/tr/td/table/tbody/tr[3]/td[2]/input"));
                    IJavaScriptExecutor js1             = driver as IJavaScriptExecutor;
                    js.ExecuteScript("arguments[0].click();", IAddressSearch1);
                    Thread.Sleep(5000);
                    gc.CreatePdf(orderNumber, ParcelNumber, "Tax  Info", driver, "CA", "Santa Cruz");

                    //Annual Tax Bill Details
                    //Supplemental and Default Taxes
                    string alertmessage = "";
                    for (int q = 2; q < 20; q++)
                    {
                        try
                        {
                            string SupplementalComments = "";
                            try
                            {
                                string supplementaltax = driver.FindElement(By.XPath("/html/body/table[1]/tbody/tr[2]/td[2]/table/tbody/tr[3]/td/table[1]/tbody/tr[3]/td/div")).Text.Trim();
                                if (supplementaltax.Contains("Prior Year Taxes defaulted."))
                                {
                                    SupplementalComments = "Past Due or Defaulted";
                                    alertmessage         = SupplementalComments;
                                }
                            }
                            catch { }
                            string              AnnualandTaxtype = "", AnnualTaxyear = "", TaxType = "", AnnualTaxyear1 = "", AnnualTaxyear2 = "", AnnualTaxyear3 = "", TaxType1 = "", TaxType2 = "", TaxType3 = "";
                            IWebElement         taxinfo   = driver.FindElement(By.XPath("/html/body/table[1]/tbody/tr[2]/td[2]/table/tbody/tr[3]/td/table[" + q + "]/tbody"));
                            IList <IWebElement> taxinfoTR = taxinfo.FindElements(By.TagName("tr"));
                            IList <IWebElement> taxinfoTD;

                            foreach (IWebElement Taxinfor in taxinfoTR)
                            {
                                taxinfoTD = Taxinfor.FindElements(By.TagName("td"));
                                if (taxinfoTD.Count == 2 && taxinfoTD.Count != 4 && !Taxinfor.Text.Contains("Review/Pay Other Tax Bills"))
                                {
                                    AnnualandTaxtype = taxinfoTD[0].Text;
                                    string[] AnnualandTaxtypesplit = AnnualandTaxtype.Split();
                                    AnnualTaxyear1 = AnnualandTaxtypesplit[0].Trim();
                                    AnnualTaxyear2 = AnnualandTaxtypesplit[1].Trim();
                                    AnnualTaxyear3 = AnnualandTaxtypesplit[2].Trim();
                                    AnnualTaxyear  = AnnualTaxyear1 + AnnualTaxyear2 + AnnualTaxyear3;
                                    TaxType1       = AnnualandTaxtypesplit[3].Trim() + "   ";
                                    TaxType2       = AnnualandTaxtypesplit[4].Trim() + "   ";
                                    TaxType3       = AnnualandTaxtypesplit[5].Trim();
                                    TaxType        = TaxType1 + TaxType2 + TaxType3;
                                }
                                if (taxinfoTD.Count != 0 && taxinfoTD.Count == 4 && !Taxinfor.Text.Contains("Review/Pay Other Tax Bills"))
                                {
                                    string Installmenttype = taxinfoTD[0].Text;
                                    string Duedate         = taxinfoTD[1].Text;
                                    string Paiddate        = taxinfoTD[2].Text;
                                    string Totalamount     = taxinfoTD[3].Text;

                                    string taxinfodetails = AnnualTaxyear + "~" + TaxType + "~" + Installmenttype + "~" + Duedate + "~" + Paiddate + "~" + Totalamount + "~" + alertmessage;
                                    gc.insert_date(orderNumber, ParcelNumber, 1054, taxinfodetails, 1, DateTime.Now);
                                }
                            }
                        }
                        catch { }
                    }

                    //"Show Tax Bill History"
                    string        AnnualandTaxtypeHistory = "", AnnualTaxyearHistory = "", TaxTypeHistory = "";
                    List <string> seedetails = new List <string>();
                    try
                    {
                        ITaxbillhistorySearch = driver.FindElement(By.XPath("/html/body/table[1]/tbody/tr[2]/td[2]/table/tbody/tr[3]/td/table[3]/tbody/tr/td[2]/form/input"));
                    }
                    catch { }
                    try
                    {
                        ITaxbillhistorySearch = driver.FindElement(By.XPath("/html/body/table[1]/tbody/tr[2]/td[2]/table/tbody/tr[3]/td/table[6]/tbody/tr/td[2]/form/input"));
                    }
                    catch { }
                    try
                    {
                        ITaxbillhistorySearch = driver.FindElement(By.XPath("/html/body/table[1]/tbody/tr[2]/td[2]/table/tbody/tr[3]/td/table[4]/tbody/tr/td[2]/form/input"));
                    }
                    catch { }
                    IJavaScriptExecutor js2 = driver as IJavaScriptExecutor;
                    js.ExecuteScript("arguments[0].click();", ITaxbillhistorySearch);
                    Thread.Sleep(2000);
                    gc.CreatePdf(orderNumber, ParcelNumber, "Show Tax Bill History", driver, "CA", "Santa Cruz");
                    for (int i = 2; i < 20; i++)
                    {
                        try
                        {
                            IWebElement         taxinfohistory   = driver.FindElement(By.XPath("/html/body/table[1]/tbody/tr[2]/td[2]/table/tbody/tr[3]/td/table[" + i + "]"));
                            IList <IWebElement> taxinfohistoryTR = taxinfohistory.FindElements(By.TagName("tr"));
                            IList <IWebElement> taxinfohistoryTD;

                            foreach (IWebElement Taxinformation in taxinfohistoryTR)
                            {
                                taxinfohistoryTD = Taxinformation.FindElements(By.TagName("td"));
                                if (taxinfohistoryTD.Count == 2 && taxinfohistoryTD.Count != 4 && !Taxinformation.Text.Contains("Review/Pay Other Tax Bills"))
                                {
                                    AnnualandTaxtypeHistory = taxinfohistoryTD[0].Text;
                                    string[] AnnualandTaxtypeHistorysplit = AnnualandTaxtypeHistory.Split();
                                    string   AnnualTaxyearHistory1        = AnnualandTaxtypeHistorysplit[0].Trim();
                                    string   AnnualTaxyearHistory2        = AnnualandTaxtypeHistorysplit[1].Trim();
                                    string   AnnualTaxyearHistory3        = AnnualandTaxtypeHistorysplit[2].Trim();
                                    AnnualTaxyearHistory = AnnualTaxyearHistory1 + AnnualTaxyearHistory2 + AnnualTaxyearHistory3;
                                    string TaxTypeHistory1 = AnnualandTaxtypeHistorysplit[3].Trim() + "   ";
                                    string TaxTypeHistory2 = AnnualandTaxtypeHistorysplit[4].Trim() + "   ";
                                    string TaxTypeHistory3 = AnnualandTaxtypeHistorysplit[5].Trim();
                                    TaxTypeHistory = TaxTypeHistory1 + TaxTypeHistory2 + TaxTypeHistory3;
                                    if (i < 5)
                                    {
                                        try
                                        {
                                            IWebElement taxinfohis = taxinfohistoryTD[1].FindElement(By.TagName("a"));
                                            string      seedata    = taxinfohis.GetAttribute("href");
                                            seedetails.Add(seedata);
                                        }
                                        catch { }
                                    }
                                }
                                if (taxinfohistoryTD.Count != 0 && taxinfohistoryTD.Count == 4 && !Taxinformation.Text.Contains("Review/Pay Other Tax Bills"))
                                {
                                    string Installmenttypehistory = taxinfohistoryTD[0].Text;
                                    string Taxamounthistory       = taxinfohistoryTD[1].Text;
                                    string Paiddatehistory        = taxinfohistoryTD[2].Text;
                                    string Totalamounthistory     = taxinfohistoryTD[3].Text;

                                    string taxinfohistorydetails = AnnualTaxyearHistory + "~" + TaxTypeHistory + "~" + Installmenttypehistory + "~" + Taxamounthistory + "~" + Paiddatehistory + "~" + Totalamounthistory;
                                    gc.insert_date(orderNumber, ParcelNumber, 1055, taxinfohistorydetails, 1, DateTime.Now);
                                }
                            }
                        }
                        catch { }
                    }
                    //Current Year Tax Details

                    try
                    {
                        IWebElement         Icurrentyeartaxdetails = driver.FindElement(By.XPath("/html/body/table[1]/tbody/tr[2]/td[2]/table/tbody/tr[3]/td/table[2]/tbody/tr[1]/td[2]/a"));
                        IJavaScriptExecutor js3 = driver as IJavaScriptExecutor;
                        js.ExecuteScript("arguments[0].click();", Icurrentyeartaxdetails);
                        Thread.Sleep(2000);
                    }
                    catch { }
                    //Tax information Details2
                    string annualtaxyearvalue = "", annualtaxyeartitle = "";
                    try
                    {
                        string taxratearea1    = driver.FindElement(By.XPath("/html/body/table[1]/tbody/tr[2]/td[2]/table/tbody/tr[3]/td/table/tbody/tr[2]/td[2]")).Text.Trim();
                        string taxratearea     = GlobalClass.After(taxratearea1, "Tax Rate Area").Trim();
                        string address1        = driver.FindElement(By.XPath("/html/body/table[1]/tbody/tr[2]/td[2]/table/tbody/tr[3]/td/table/tbody/tr[3]/td[2]")).Text.Trim();
                        string address         = GlobalClass.After(address1, "Address").Trim();
                        string taxinfodetails2 = taxratearea + "~" + address + "~" + taxauthority;
                        gc.insert_date(orderNumber, ParcelNumber, 1062, taxinfodetails2, 1, DateTime.Now);
                    }
                    catch { }
                    int p = 0;
                    foreach (string seehistory in seedetails)
                    {
                        driver.Navigate().GoToUrl(seehistory);
                        gc.CreatePdf(orderNumber, ParcelNumber, "Icurrent Yeartaxdetails Pdf" + p, driver, "CA", "Santa Cruz");
                        //Tax year details
                        string   annualhistoryyear      = driver.FindElement(By.XPath("/html/body/table[1]/tbody/tr[2]/td[2]/table/tbody/tr[3]/td/table/tbody/tr[2]/td[1]")).Text.Trim();
                        string[] splitannualhistoryyear = annualhistoryyear.Split();
                        string   annualtaxyear1         = splitannualhistoryyear[0].Trim();
                        string   annualtaxyear2         = splitannualhistoryyear[1].Trim();
                        string   annualtaxyear3         = splitannualhistoryyear[2].Trim();
                        annualtaxyearvalue = annualtaxyear1 + annualtaxyear2 + annualtaxyear3.Trim();
                        string annualtaxyeartitle1 = splitannualhistoryyear[3].Trim();
                        string annualtaxyeartitle2 = splitannualhistoryyear[4].Trim();
                        string annualtaxyeartitle3 = splitannualhistoryyear[5].Trim();
                        annualtaxyeartitle = annualtaxyeartitle1 + annualtaxyeartitle2 + annualtaxyeartitle3.Trim();

                        //Tax Distributon Details
                        IWebElement         taxdistribution   = driver.FindElement(By.XPath("/html/body/table[1]/tbody/tr[2]/td[2]/table/tbody/tr[3]/td/table/tbody/tr[4]/td/table/tbody/tr[4]/td/table"));
                        IList <IWebElement> taxdistributionTR = taxdistribution.FindElements(By.TagName("tr"));
                        IList <IWebElement> taxdistributionTD;

                        foreach (IWebElement taxdistributiondetails in taxdistributionTR)
                        {
                            taxdistributionTD = taxdistributiondetails.FindElements(By.TagName("td"));

                            if (taxdistributiondetails.Text.Contains("TOTAL") && taxdistributionTD.Count != 0)
                            {
                                string Taxingagency = taxdistributionTD[0].Text;
                                string Rate         = taxdistributionTD[1].Text;
                                string Amount       = taxdistributionTD[2].Text;
                                string taxdistributiondetailsdata = annualtaxyearvalue + "~" + annualtaxyeartitle + "~" + Taxingagency + "~" + Rate + "~" + Amount;
                                gc.insert_date(orderNumber, ParcelNumber, 1060, taxdistributiondetailsdata, 1, DateTime.Now);
                            }
                            if (taxdistributionTD.Count != 0 && taxdistributionTD.Count == 3 && !taxdistributiondetails.Text.Contains("BASIC PROPERTY TAXES") && !taxdistributiondetails.Text.Contains("TOTAL"))
                            {
                                string Taxingagency = taxdistributionTD[0].Text;
                                string Rate         = taxdistributionTD[1].Text;
                                string Amount       = taxdistributionTD[2].Text;
                                string taxdistributiondetailsdata = annualtaxyearvalue + "~" + annualtaxyeartitle + "~" + Taxingagency + "~" + Rate + "~" + Amount;
                                gc.insert_date(orderNumber, ParcelNumber, 1060, taxdistributiondetailsdata, 1, DateTime.Now);
                            }
                        }

                        //Tax Distribution Installments
                        IWebElement         taxinstallments   = driver.FindElement(By.XPath("/html/body/table[1]/tbody/tr[2]/td[2]/table/tbody/tr[3]/td/table/tbody/tr[4]/td/table/tbody/tr[6]/td/table"));
                        IList <IWebElement> taxinstallmentsTR = taxinstallments.FindElements(By.TagName("tr"));
                        IList <IWebElement> taxinstallmentsTD;

                        foreach (IWebElement taxinstallmentsdetails in taxinstallmentsTR)
                        {
                            taxinstallmentsTD = taxinstallmentsdetails.FindElements(By.TagName("td"));

                            if (taxinstallmentsTD.Count != 0 && taxinstallmentsTD.Count == 4 && !taxinstallmentsdetails.Text.Contains("FIRST INSTALLMENT"))
                            {
                                string Taxingagency = taxinstallmentsTD[0].Text;
                                string FirstRate    = taxinstallmentsTD[1].Text;
                                string SecondRate   = taxinstallmentsTD[2].Text;
                                string Amount       = taxinstallmentsTD[3].Text;
                                string taxinstallmentsdetailsdata = annualtaxyearvalue + "~" + Taxingagency + "~" + FirstRate + "~" + SecondRate + "~" + Amount;
                                gc.insert_date(orderNumber, ParcelNumber, 1063, taxinstallmentsdetailsdata, 1, DateTime.Now);
                            }
                        }
                        p++;
                    }


                    TaxTime = DateTime.Now.ToString("HH:mm:ss");
                    driver.Quit();
                    gc.mergpdf(orderNumber, "CA", "Santa Cruz");
                    LastEndTime = DateTime.Now.ToString("HH:mm:ss");
                    gc.insert_TakenTime(orderNumber, "CA", "Santa Cruz", StartTime, AssessmentTime, TaxTime, CitytaxTime, LastEndTime);
                    return("Data Inserted Successfully");
                }
                catch (Exception ex)
                {
                    driver.Quit();
                    GlobalClass.LogError(ex, orderNumber);
                    throw ex;
                }
            }
        }
Beispiel #4
0
        public string FTP_Stlouiscity(string address, string parcelNumber, string ownername, string searchType, string orderNumber, string directParcel, string taxmapnumber)
        {
            GlobalClass.global_orderNo             = orderNumber;
            HttpContext.Current.Session["orderNo"] = orderNumber;
            GlobalClass.global_parcelNo            = parcelNumber;
            string TaxingAuthority = "";
            string StartTime = "", AssessmentTime = "", TaxTime = "", CitytaxTime = "", LastEndTime = "";

            var driverService = PhantomJSDriverService.CreateDefaultService();

            driverService.HideCommandPromptWindow = true;
            using (driver = new PhantomJSDriver())
            {
                try
                {
                    StartTime = DateTime.Now.ToString("HH:mm:ss");
                    try
                    {
                        //Taxing Authority
                        driver.Navigate().GoToUrl("https://www.stlouis-mo.gov/collector/real-estate-tax-home.cfm");
                        Thread.Sleep(2000);
                        gc.CreatePdf_WOP(orderNumber, "Taxing Authority", driver, "MO", "St Louis City");
                        string bulkTaxauth = driver.FindElement(By.XPath("//*[@id='center-column']/p[5]")).Text.Replace("\r\n", " ");
                        TaxingAuthority = gc.Between(bulkTaxauth, "Collector of Revenue Office", "Email: [email protected]").Trim();
                    }
                    catch { }
                    // Property Details
                    driver.Navigate().GoToUrl("https://www.stlouis-mo.gov/data/address-search/index.cfm");
                    Thread.Sleep(4000);
                    gc.CreatePdf_WOP(orderNumber, "Home page", driver, "MO", "St Louis City");

                    if (searchType == "titleflex")
                    {
                        gc.TitleFlexSearch(orderNumber, "", ownername, address, "MO", "St Louis City");
                        if ((HttpContext.Current.Session["TitleFlex_Search"] != null && HttpContext.Current.Session["TitleFlex_Search"].ToString() == "Yes"))
                        {
                            driver.Quit();
                            return("MultiParcel");
                        }
                        else if (HttpContext.Current.Session["titleparcel"].ToString() == "")
                        {
                            HttpContext.Current.Session["Nodata_StLouisCityMO"] = "Yes";
                            driver.Quit();
                            return("No Data Found");
                        }
                        parcelNumber = HttpContext.Current.Session["titleparcel"].ToString();
                        searchType   = "parcel";
                    }
                    if (searchType == "address")
                    {
                        driver.FindElement(By.XPath("//*[@id='streetForm']/p[1]/input")).SendKeys(address);
                        gc.CreatePdf_WOP(orderNumber, "Address search", driver, "MO", "St Louis City");
                        driver.FindElement(By.XPath("//*[@id='streetForm']/p[4]/input")).SendKeys(Keys.Enter);
                        Thread.Sleep(3000);
                        gc.CreatePdf_WOP(orderNumber, "Address Search Result", driver, "MO", "St Louis City");
                        try
                        {
                            IWebElement         add_search   = driver.FindElement(By.XPath("//*[@id='CS_CCF_31321_31340']/div/div/table/tbody"));
                            IList <IWebElement> TRadd_search = add_search.FindElements(By.TagName("tr"));
                            IList <IWebElement> THadd_search = add_search.FindElements(By.TagName("th"));
                            IList <IWebElement> TDadd_search;
                            foreach (IWebElement row in TRadd_search)
                            {
                                TDadd_search = row.FindElements(By.TagName("td"));
                                if (TRadd_search.Count > 2 && TDadd_search.Count != 0 && THadd_search.Count == 3)
                                {
                                    string parcel_id      = TDadd_search[0].Text;
                                    string Address        = TDadd_search[1].Text;
                                    string ownername1     = TDadd_search[2].Text;
                                    string AddressDetails = Address + "~" + ownername1;

                                    gc.insert_date(orderNumber, parcel_id, 851, AddressDetails, 1, DateTime.Now);
                                }
                                if (TRadd_search.Count == 2)
                                {
                                }
                            }
                            if (TRadd_search.Count < 27 && TRadd_search.Count > 2 && THadd_search.Count == 3)
                            {
                                gc.CreatePdf_WOP(orderNumber, "Multi Address search result", driver, "MO", "St Louis City");
                                HttpContext.Current.Session["multiparcel_St_Louis_CityMO"] = "Yes";
                                driver.Quit();
                                return("MultiParcel");
                            }
                            if (TRadd_search.Count >= 27 && TRadd_search.Count > 2)
                            {
                                HttpContext.Current.Session["multiParcel_St_Louis_CityMO_Multicount"] = "Maximum";
                                driver.Quit();
                                return("Maximum");
                            }
                        }
                        catch { }
                    }

                    else if (searchType == "parcel")
                    {
                        driver.FindElement(By.XPath("//*[@id='streetForm']/p[1]/input")).SendKeys(parcelNumber);
                        gc.CreatePdf(orderNumber, parcelNumber, "parcel search", driver, "MO", "St Louis City");
                        driver.FindElement(By.XPath("//*[@id='streetForm']/p[4]/input")).SendKeys(Keys.Enter);
                        Thread.Sleep(3000);
                        gc.CreatePdf(orderNumber, parcelNumber, "parcel search Result", driver, "MO", "St Louis City");
                    }

                    try
                    {
                        IWebElement INodata = driver.FindElement(By.Id("content"));
                        if (INodata.Text.Contains("No record was found"))
                        {
                            HttpContext.Current.Session["Nodata_StLouisCityMO"] = "Yes";
                            driver.Quit();
                            return("No Data Found");
                        }
                    }
                    catch { }

                    string bulkdata = driver.FindElement(By.XPath("//*[@id='CS_CCF_31321_31340']/div[2]/div[1]/div/div/table/tbody")).Text;
                    string primary_address = "", owner_name = "", parcel_no = "", neighborhood = "", ward = "", land_use = "", property_desc = "";
                    primary_address = gc.Between(bulkdata, "Primary Address", "Owner name").Trim();
                    owner_name      = gc.Between(bulkdata, "Owner name", "Parcel").Trim().Replace(":", "");
                    parcel_no       = gc.Between(bulkdata, "Parcel", "Neighborhood").Trim();
                    neighborhood    = gc.Between(bulkdata, "Neighborhood", "Ward").Trim();
                    ward            = gc.Between(bulkdata, "Ward", "Land use").Trim().Replace(":", "");
                    land_use        = gc.Between(bulkdata, "Land use", "Property description").Trim().Replace(":", "");
                    property_desc   = GlobalClass.After(bulkdata, "Property description").Trim().Replace(":", "").Replace("Not meant for use in recorded legal documents", "").Replace("\r\n", "");

                    // address search
                    try
                    {
                        string bulktext2 = driver.FindElement(By.XPath("//*[@id='CS_CCF_31321_31340']/div[3]/div[1]/div/div/table/tbody")).Text;
                        string mailing_address2 = "", property_address2 = "", zip_code2 = "", year_built2 = "";
                        mailing_address2  = gc.Between(bulktext2, "Owner mailing address", "Property address").Trim().Replace(":", "");
                        property_address2 = gc.Between(bulktext2, "Property address", "Zip code").Trim().Replace(":", "");
                        zip_code2         = gc.Between(bulktext2, "Zip code", "Parcel number").Trim().Replace(":", "");
                        year_built2       = GlobalClass.After(bulktext2, "Year built").Trim();

                        string bulkinfo2 = driver.FindElement(By.XPath("//*[@id='CS_CCF_31321_31340']/div[4]/div[1]/div/div/table/tbody")).Text;
                        string condominium2 = "", numberofunits2 = "", frontage2 = "", land_area2 = "";
                        condominium2   = gc.Between(bulkinfo2, "Condominium", "Number of units").Trim().Replace(":", "");
                        numberofunits2 = gc.Between(bulkinfo2, "Number of units", "Frontage").Trim().Replace(":", "");
                        frontage2      = gc.Between(bulkinfo2, "Frontage", "Land area").Trim().Replace(":", "");
                        land_area2     = gc.Between(bulkinfo2, "Land area", "Property description").Trim().Replace(":", "");

                        string bulktxt2 = driver.FindElement(By.XPath("//*[@id='CS_CCF_31321_31340']/div[4]/div[2]/div/div/table/tbody")).Text;
                        string class_code2 = "", zoning2 = "", redevelopment_code2 = "", vacant_lot2 = "";
                        class_code2         = gc.Between(bulktxt2, "Class code", "Land use").Trim().Replace(":", "");
                        zoning2             = gc.Between(bulktxt2, "Zoning", "Redevelopment code").Trim().Replace(":", "");
                        redevelopment_code2 = gc.Between(bulktxt2, "Redevelopment code", "Vacant lot").Trim().Replace(":", "");
                        vacant_lot2         = GlobalClass.After(bulktxt2, "Vacant lot").Trim().Replace(":", "");
                        string propertydetails = primary_address + "~" + owner_name + "~" + mailing_address2 + "~" + neighborhood + "~" + ward + "~" + land_use + "~" + property_desc + "~" + property_address2 + "~" + zip_code2 + "~" + year_built2 + "~" + condominium2 + "~" + numberofunits2 + "~" + frontage2 + "~" + land_area2 + "~" + class_code2 + "~" + zoning2 + "~" + redevelopment_code2 + "~" + vacant_lot2;
                        gc.insert_date(orderNumber, parcel_no, 805, propertydetails, 1, DateTime.Now);
                    }
                    catch (Exception ex) { }

                    // Parcel search
                    try
                    {
                        string bulktext = driver.FindElement(By.XPath("//*[@id='CS_CCF_31321_31340']/div[3]/div[1]/div/div/table/tbody")).Text;
                        string mailing_address = "", property_address = "", zip_code = "", year_built = "";
                        mailing_address  = gc.Between(bulktext, "Owner mailing address", "Property address").Trim().Replace(":", "");
                        property_address = gc.Between(bulktext, "Property address", "Zip code").Trim().Replace(":", "");
                        zip_code         = gc.Between(bulktext, "Zip code", "Parcel number").Trim().Replace(":", "");
                        year_built       = GlobalClass.After(bulktext, "Year built").Trim();

                        string bulkinfo = driver.FindElement(By.XPath("//*[@id='cs_control_31340']/div[2]/div[1]/div/div/table/tbody")).Text;
                        string condominium = "", numberofunits = "", frontage = "", land_area = "";
                        condominium   = gc.Between(bulkinfo, "Condominium", "Number of units").Trim().Replace(":", "");
                        numberofunits = gc.Between(bulkinfo, "Number of units", "Frontage").Trim().Replace(":", "");
                        frontage      = gc.Between(bulkinfo, "Frontage", "Land area").Trim().Replace(":", "");
                        land_area     = gc.Between(bulkinfo, "Land area", "Property description").Trim().Replace(":", "");

                        string bulktxt = driver.FindElement(By.XPath("//*[@id='cs_control_31340']/div[2]/div[2]/div/div/table/tbody")).Text;
                        string class_code = "", zoning = "", redevelopment_code = "", vacant_lot = "";
                        class_code         = gc.Between(bulktxt, "Class code", "Land use").Trim().Replace(":", "");
                        zoning             = gc.Between(bulktxt, "Zoning", "Redevelopment code").Trim().Replace(":", "");
                        redevelopment_code = gc.Between(bulktxt, "Redevelopment code", "Vacant lot").Trim().Replace(":", "");
                        vacant_lot         = GlobalClass.After(bulktxt, "Vacant lot").Trim().Replace(":", "");
                        string propertydetails = primary_address + "~" + owner_name + "~" + mailing_address + "~" + neighborhood + "~" + ward + "~" + land_use + "~" + property_desc + "~" + property_address + "~" + zip_code + "~" + year_built + "~" + condominium + "~" + numberofunits + "~" + frontage + "~" + land_area + "~" + class_code + "~" + zoning + "~" + redevelopment_code + "~" + vacant_lot;
                        gc.insert_date(orderNumber, parcel_no, 805, propertydetails, 1, DateTime.Now);
                    }
                    catch (Exception ex) { }


                    // Delinquent search
                    try
                    {
                        string bulktext1 = driver.FindElement(By.XPath("//*[@id='CS_CCF_31321_31340']/div[3]/div/table/tbody")).Text;
                        string mailing_address1 = "", property_address1 = "", zip_code1 = "", year_built1 = "";
                        mailing_address1  = gc.Between(bulktext1, "Owner mailing address", "Property address").Trim().Replace(":", "");
                        property_address1 = gc.Between(bulktext1, "Property address", "Zip code").Trim().Replace(":", "");
                        zip_code1         = gc.Between(bulktext1, "Zip code", "Parcel number").Trim().Replace(":", "");
                        year_built1       = GlobalClass.After(bulktext1, "Year built").Trim();

                        string bulkinfo1 = driver.FindElement(By.XPath("//*[@id='CS_CCF_31321_31340']/div[4]/div[1]/div/div/table/tbody")).Text;
                        string condominium1 = "", numberofunits1 = "", frontage1 = "", land_area1 = "";
                        condominium1   = gc.Between(bulkinfo1, "Condominium", "Number of units").Trim().Replace(":", "");
                        numberofunits1 = gc.Between(bulkinfo1, "Number of units", "Frontage").Trim().Replace(":", "");
                        frontage1      = gc.Between(bulkinfo1, "Frontage", "Land area").Trim().Replace(":", "");
                        land_area1     = gc.Between(bulkinfo1, "Land area", "Property description").Trim().Replace(":", "");

                        string bulktxt1 = driver.FindElement(By.XPath("//*[@id='CS_CCF_31321_31340']/div[4]/div[2]/div/div/table/tbody")).Text;
                        string class_code1 = "", zoning1 = "", redevelopment_code1 = "", vacant_lot1 = "";
                        class_code1         = gc.Between(bulktxt1, "Class code", "Land use").Trim().Replace(":", "");
                        zoning1             = gc.Between(bulktxt1, "Zoning", "Redevelopment code").Trim().Replace(":", "");
                        redevelopment_code1 = gc.Between(bulktxt1, "Redevelopment code", "Vacant lot").Trim().Replace(":", "");
                        vacant_lot1         = GlobalClass.After(bulktxt1, "Vacant lot").Trim().Replace(":", "");
                        string propertydetails = primary_address + "~" + owner_name + "~" + mailing_address1 + "~" + neighborhood + "~" + ward + "~" + land_use + "~" + property_desc + "~" + property_address1 + "~" + zip_code1 + "~" + year_built1 + "~" + condominium1 + "~" + numberofunits1 + "~" + frontage1 + "~" + land_area1 + "~" + class_code1 + "~" + zoning1 + "~" + redevelopment_code1 + "~" + vacant_lot1;
                        gc.insert_date(orderNumber, parcel_no, 805, propertydetails, 1, DateTime.Now);
                    }
                    catch (Exception ex) { }

                    // Assessment Details Address search
                    string Currentassessedvalue = "", AssessTitle = "", AssessValue = "", AssessType = "";
                    try
                    {
                        IWebElement         Iassess     = driver.FindElement(By.XPath("//*[@id='CS_CCF_31321_31340']/div[6]/div[1]/div/div/table"));
                        IList <IWebElement> TRassessCap = Iassess.FindElements(By.TagName("caption"));
                        foreach (IWebElement row in TRassessCap)
                        {
                            if (row.Text != "")
                            {
                                Currentassessedvalue = row.Text;
                            }
                        }
                        IList <IWebElement> TRassess = Iassess.FindElements(By.TagName("tr"));
                        IList <IWebElement> TDassess;
                        IList <IWebElement> THassess;
                        foreach (IWebElement row in TRassess)
                        {
                            TDassess = row.FindElements(By.TagName("td"));
                            THassess = row.FindElements(By.TagName("th"));
                            if (TDassess.Count != 0 && TDassess.Count > 1)
                            {
                                AssessType = TDassess[0].Text;
                            }
                            if (TDassess.Count != 0 && TDassess.Count == 1)
                            {
                                AssessValue += TDassess[0].Text + "~";
                            }
                            if (THassess.Count != 0 && THassess.Count == 1)
                            {
                                AssessTitle += THassess[0].Text.Replace(":", "") + "~";
                            }
                        }
                        db.ExecuteQuery("update data_field_master set Data_Fields_Text='" + "Year Type" + "~" + "Assessment Type" + "~" + AssessTitle.Remove(AssessTitle.Length - 1, 1) + "' where Id = '" + 833 + "'");
                        gc.insert_date(orderNumber, parcel_no, 833, Currentassessedvalue + "~" + AssessType + "~" + AssessValue.Remove(AssessValue.Length - 1, 1), 1, DateTime.Now);
                    }
                    catch { }

                    string priorassessedvalue = "", AssessTitle1 = "", AssessValue1 = "", AssessType1 = "";
                    try
                    {
                        IWebElement         Iassessment  = driver.FindElement(By.XPath("//*[@id='CS_CCF_31321_31340']/div[6]/div[2]/div/div/table"));
                        IList <IWebElement> TRassessCap1 = Iassessment.FindElements(By.TagName("caption"));
                        foreach (IWebElement row in TRassessCap1)
                        {
                            if (row.Text != "")
                            {
                                priorassessedvalue = row.Text;
                            }
                        }
                        IList <IWebElement> TRassess1 = Iassessment.FindElements(By.TagName("tr"));
                        IList <IWebElement> TDassess1;
                        IList <IWebElement> THassess1;
                        foreach (IWebElement row in TRassess1)
                        {
                            TDassess1 = row.FindElements(By.TagName("td"));
                            THassess1 = row.FindElements(By.TagName("th"));
                            if (TDassess1.Count != 0 && TDassess1.Count > 1)
                            {
                                AssessType1 = TDassess1[0].Text;
                            }
                            if (TDassess1.Count != 0 && TDassess1.Count == 1)
                            {
                                AssessValue1 += TDassess1[0].Text + "~";
                            }
                            if (THassess1.Count != 0 && THassess1.Count == 1)
                            {
                                AssessTitle1 += THassess1[0].Text.Replace(":", "") + "~";
                            }
                        }

                        gc.insert_date(orderNumber, parcel_no, 833, priorassessedvalue + "~" + AssessType1 + "~" + AssessValue1.Remove(AssessValue1.Length - 1, 1), 1, DateTime.Now);
                    }
                    catch { }

                    // Assessment Details Parcel search
                    string Currentassessedvalue1 = "", AssessTitle2 = "", AssessValue2 = "", AssessType2 = "";
                    try
                    {
                        IWebElement         Iassess2     = driver.FindElement(By.XPath("//*[@id='cs_control_31340']/div[4]/div[1]/div/div/table"));
                        IList <IWebElement> TRassessCap2 = Iassess2.FindElements(By.TagName("caption"));
                        foreach (IWebElement row in TRassessCap2)
                        {
                            if (row.Text != "")
                            {
                                Currentassessedvalue1 = row.Text;
                            }
                        }
                        IList <IWebElement> TRassess2 = Iassess2.FindElements(By.TagName("tr"));
                        IList <IWebElement> TDassess2;
                        IList <IWebElement> THassess2;
                        foreach (IWebElement row in TRassess2)
                        {
                            TDassess2 = row.FindElements(By.TagName("td"));
                            THassess2 = row.FindElements(By.TagName("th"));
                            if (TDassess2.Count != 0 && TDassess2.Count > 1)
                            {
                                AssessType2 = TDassess2[0].Text;
                            }
                            if (TDassess2.Count != 0 && TDassess2.Count == 1)
                            {
                                AssessValue2 += TDassess2[0].Text + "~";
                            }
                            if (THassess2.Count != 0 && THassess2.Count == 1)
                            {
                                AssessTitle2 += THassess2[0].Text.Replace(":", "") + "~";
                            }
                        }
                        db.ExecuteQuery("update data_field_master set Data_Fields_Text='" + "Year Type" + "~" + "Assessment Type" + "~" + AssessTitle2.Remove(AssessTitle2.Length - 1, 1) + "' where Id = '" + 833 + "'");
                        gc.insert_date(orderNumber, parcel_no, 833, Currentassessedvalue1 + "~" + AssessType2 + "~" + AssessValue2.Remove(AssessValue2.Length - 1, 1), 1, DateTime.Now);
                    }
                    catch { }

                    string priorassessedvalue1 = "", AssessTitle3 = "", AssessValue3 = "", AssessType3 = "";
                    try
                    {
                        IWebElement         Iassessment1 = driver.FindElement(By.XPath("//*[@id='cs_control_31340']/div[4]/div[2]/div/div/table"));
                        IList <IWebElement> TRassessCap3 = Iassessment1.FindElements(By.TagName("caption"));
                        foreach (IWebElement row in TRassessCap3)
                        {
                            if (row.Text != "")
                            {
                                priorassessedvalue1 = row.Text;
                            }
                        }
                        IList <IWebElement> TRassess3 = Iassessment1.FindElements(By.TagName("tr"));
                        IList <IWebElement> TDassess3;
                        IList <IWebElement> THassess3;
                        foreach (IWebElement row in TRassess3)
                        {
                            TDassess3 = row.FindElements(By.TagName("td"));
                            THassess3 = row.FindElements(By.TagName("th"));
                            if (TDassess3.Count != 0 && TDassess3.Count > 1)
                            {
                                AssessType3 = TDassess3[0].Text;
                            }
                            if (TDassess3.Count != 0 && TDassess3.Count == 1)
                            {
                                AssessValue3 += TDassess3[0].Text + "~";
                            }
                            if (THassess3.Count != 0 && THassess3.Count == 1)
                            {
                                AssessTitle3 += THassess3[0].Text.Replace(":", "") + "~";
                            }
                        }

                        gc.insert_date(orderNumber, parcel_no, 833, priorassessedvalue1 + "~" + AssessType3 + "~" + AssessValue3.Remove(AssessValue3.Length - 1, 1), 1, DateTime.Now);
                    }
                    catch { }

                    // Tax Bill Address search
                    string TaxBillDetails = "", TaxBillDetails2 = "";
                    try
                    {
                        IWebElement         taxbill   = driver.FindElement(By.XPath("//*[@id='CS_CCF_31321_31340']/div[9]/div[1]/div/table/tbody"));
                        IList <IWebElement> TRtaxbill = taxbill.FindElements(By.TagName("tr"));
                        IList <IWebElement> TDtaxbill;
                        IList <IWebElement> THtaxbill;
                        foreach (IWebElement row in TRtaxbill)
                        {
                            TDtaxbill = row.FindElements(By.TagName("td"));
                            THtaxbill = row.FindElements(By.TagName("th"));
                            if (TDtaxbill.Count != 0 && TDtaxbill.Count > 1 && !row.Text.Contains("Interest") && TDtaxbill.Count > 8)
                            {
                                TaxBillDetails = TDtaxbill[0].Text + "~" + TDtaxbill[1].Text + "~" + TDtaxbill[2].Text + "~" + TDtaxbill[3].Text + "~" + TDtaxbill[4].Text + "~" + TDtaxbill[5].Text + "~" + TDtaxbill[6].Text + "~" + TDtaxbill[7].Text + "~" + TDtaxbill[8].Text + "~" + TDtaxbill[9].Text + "~" + TDtaxbill[10].Text;
                                gc.insert_date(orderNumber, parcel_no, 839, TaxBillDetails + "~" + TaxingAuthority, 1, DateTime.Now);
                            }
                            if (TDtaxbill.Count != 0 && TDtaxbill.Count < 8)
                            {
                                TaxBillDetails2 = TDtaxbill[0].Text + "~" + TDtaxbill[1].Text + "~" + TDtaxbill[2].Text + "~" + TDtaxbill[3].Text + "~" + TDtaxbill[4].Text + "~" + TDtaxbill[5].Text + "~" + TDtaxbill[6].Text + "~" + "" + "~" + "" + "~" + "" + "~" + "";
                                gc.insert_date(orderNumber, parcel_no, 839, TaxBillDetails2 + "~" + TaxingAuthority, 1, DateTime.Now);
                            }
                        }
                    }
                    catch { }

                    // Tax Bill Parcel Search
                    string TaxBillDetails1 = "";
                    try
                    {
                        IWebElement         taxbill1   = driver.FindElement(By.XPath("//*[@id='cs_control_31340']/div[7]/div[1]/div/table/tbody"));
                        IList <IWebElement> TRtaxbill1 = taxbill1.FindElements(By.TagName("tr"));
                        IList <IWebElement> TDtaxbill1;
                        IList <IWebElement> THtaxbill1;
                        foreach (IWebElement row in TRtaxbill1)
                        {
                            TDtaxbill1 = row.FindElements(By.TagName("td"));
                            THtaxbill1 = row.FindElements(By.TagName("th"));
                            if (TDtaxbill1.Count != 0 && TDtaxbill1.Count > 1)
                            {
                                TaxBillDetails1 = TDtaxbill1[0].Text + "~" + TDtaxbill1[1].Text + "~" + TDtaxbill1[2].Text + "~" + TDtaxbill1[3].Text + "~" + TDtaxbill1[4].Text + "~" + TDtaxbill1[5].Text + "~" + TDtaxbill1[6].Text + "~" + "" + "~" + "" + "~" + "" + "~" + "";
                                gc.insert_date(orderNumber, parcel_no, 839, TaxBillDetails1 + "~" + TaxingAuthority, 1, DateTime.Now);
                            }
                        }
                    }
                    catch { }

                    try
                    {
                        IWebElement multiaddress = driver.FindElement(By.XPath("//*[@id='CS_CCF_31321_31340']/p[4]"));
                        if (multiaddress.Text.Contains("please contact the Collector of Revenue Office") && !multiaddress.Text.Contains("$") && !multiaddress.Text.Contains("Total Amount Due For this Account:"))
                        {
                            HttpContext.Current.Session["Delinquent_St_Louis_CityMO"] = "Yes";
                        }
                    }
                    catch { }



                    CitytaxTime = DateTime.Now.ToString("HH:mm:ss");

                    LastEndTime = DateTime.Now.ToString("HH:mm:ss");
                    gc.insert_TakenTime(orderNumber, "MO", "St Louis City", StartTime, AssessmentTime, TaxTime, CitytaxTime, LastEndTime);

                    driver.Quit();
                    gc.mergpdf(orderNumber, "MO", "St Louis City");
                    return("Data Inserted Successfully");
                }

                catch (Exception ex)
                {
                    driver.Quit();
                    GlobalClass.LogError(ex, orderNumber);
                    throw ex;
                }
            }
        }
Beispiel #5
0
        public string FTP_Collier(string Address, string parcelNumber, string ownername, string searchType, string orderNumber, string directParcel)
        {
            string strBill = "-", strBalance = "-", strBillDate = "-", strBillPaid = "-", strFBill = "-", strFBalance = "-", strFBillDate = "-", strFBillPaid = "-";
            string TaxYear = "", TaxAmount = "", PaidAmount = "", ReceiptNumber = "", Account_number = "", Millage_Code = "", Millage_rate = "";

            GlobalClass.global_orderNo             = orderNumber;
            HttpContext.Current.Session["orderNo"] = orderNumber;
            GlobalClass.global_parcelNo            = parcelNumber;
            string        StartTime = "", AssessmentTime = "", TaxTime = "", CitytaxTime = "", LastEndTime = "", AssessTakenTime = "", TaxTakentime = "", CityTaxtakentime = "";
            string        TotaltakenTime   = "";
            List <string> strTaxRealestate = new List <string>();
            var           driverService    = PhantomJSDriverService.CreateDefaultService();

            driverService.HideCommandPromptWindow = true;
            using (driver = new PhantomJSDriver())
            {
                string   AlterNateID = "", PropertyAddress = "", owner = "";
                string[] stringSeparators1 = new string[] { "\r\n" };

                List <string> listurl = new List <string>();


                try
                {
                    StartTime = DateTime.Now.ToString("HH:mm:ss");
                    //if (searchType == "titleflex")
                    //{
                    //    gc.TitleFlexSearch(orderNumber, parcelNumber, ownername, Address, "IN", "Hamilton");
                    //    if (GlobalClass.TitleFlex_Search == "Yes")
                    //    {
                    //        return "MultiParcel";
                    //    }
                    //    else
                    //    {
                    //        string strTitleAssess = GlobalClass.TitleFlexAssess;
                    //        parcelNumber = GlobalClass.titleparcel;

                    //        searchType = "parcel";
                    //    }
                    //}

                    if (searchType == "titleflex")
                    {
                        gc.TitleFlexSearch(orderNumber, parcelNumber, "", Address, "FL", "Collier");
                        if ((HttpContext.Current.Session["TitleFlex_Search"] != null && HttpContext.Current.Session["TitleFlex_Search"].ToString() == "Yes"))
                        {
                            driver.Quit();
                            return("MultiParcel");
                        }
                        else if (HttpContext.Current.Session["titleparcel"].ToString() == "")
                        {
                            HttpContext.Current.Session["Nodata_FLCollier"] = "Yes";
                            driver.Quit();
                            return("No Data Found");
                        }
                        parcelNumber = HttpContext.Current.Session["titleparcel"].ToString();
                        searchType   = "parcel";
                    }

                    if (searchType == "address")
                    {
                        driver.Navigate().GoToUrl("http://www.collierappraiser.com/");
                        Thread.Sleep(2000);


                        IWebElement iframeElement = driver.FindElement(By.XPath("/html/frameset/frame"));
                        //now use the switch command
                        driver.SwitchTo().Frame(iframeElement);

                        IWebElement iframeElement1 = driver.FindElement(By.XPath("/html/frameset/frame[2]"));
                        //now use the switch command
                        driver.SwitchTo().Frame(iframeElement1);

                        driver.FindElement(By.XPath("//*[@id='AutoNumber3']/tbody/tr/td[3]/table/tbody/tr[4]/td/a")).Click();
                        Thread.Sleep(10000);
                        driver.SwitchTo().DefaultContent();
                        Thread.Sleep(2000);

                        IWebElement iframeElement2 = driver.FindElement(By.XPath("//*[@id='rbottom']"));
                        //now use the switch command
                        driver.SwitchTo().Frame(iframeElement2);
                        Thread.Sleep(2000);
                        //now use the switch command

                        driver.FindElement(By.XPath("//*[@id='a_searchlink']")).Click();
                        Thread.Sleep(5000);
                        driver.FindElement(By.XPath("//*[@id='ui-id-16']")).Click();
                        Thread.Sleep(5000);
                        driver.FindElement(By.XPath("//*[@id='FullAddress']")).SendKeys(Address);
                        Thread.Sleep(1000);
                        gc.CreatePdf_WOP(orderNumber, "Address search", driver, "FL", "Collier");
                        driver.FindElement(By.XPath("//*[@id='SearchFullAddress']")).Click();
                        Thread.Sleep(6000);
                        gc.CreatePdf_WOP(orderNumber, "Address search Result", driver, "FL", "Collier");


                        try
                        {
                            IWebElement         MultiOwnerTable = driver.FindElement(By.Id("flex1"));
                            IList <IWebElement> MultiOwnerRow   = MultiOwnerTable.FindElements(By.TagName("tr"));
                            IList <IWebElement> MultiOwnerTD;
                            //string AlterNateID = "", PropertyAddress = "", LegalDescriptoin = "", YearBuilt = "";
                            foreach (IWebElement row1 in MultiOwnerRow)
                            {
                                MultiOwnerTD = row1.FindElements(By.TagName("td"));
                                if (MultiOwnerTD.Count != 0 && MultiOwnerTD.Count != 2 && MultiOwnerTD.Count != 1 && !row1.Text.Contains("Parcel No.") && MultiOwnerTD[1].Text.Trim() != "")
                                {
                                    parcelNumber    = MultiOwnerTD[1].Text;
                                    ownername       = MultiOwnerTD[3].Text;
                                    PropertyAddress = MultiOwnerTD[5].Text;
                                    string Multi = PropertyAddress + "~" + ownername;
                                    gc.insert_date(orderNumber, parcelNumber, 488, Multi, 1, DateTime.Now);
                                }
                            }
                            //GlobalClass.multiParcel_MiamiDade = "Yes";
                            HttpContext.Current.Session["multiParcel_Collier"] = "Yes";
                            driver.Quit();
                            return("MultiParcel");
                        }
                        catch { }
                    }
                    if (searchType == "ownername")
                    {
                        driver.Navigate().GoToUrl("http://www.collierappraiser.com/");
                        Thread.Sleep(2000);
                        IWebElement iframeElement = driver.FindElement(By.XPath("/html/frameset/frame"));
                        //now use the switch command
                        driver.SwitchTo().Frame(iframeElement);

                        IWebElement iframeElement1 = driver.FindElement(By.XPath("/html/frameset/frame[2]"));
                        //now use the switch command
                        driver.SwitchTo().Frame(iframeElement1);

                        driver.FindElement(By.XPath("//*[@id='AutoNumber3']/tbody/tr/td[3]/table/tbody/tr[4]/td/a")).Click();
                        Thread.Sleep(10000);
                        driver.SwitchTo().DefaultContent();
                        Thread.Sleep(2000);

                        IWebElement iframeElement2 = driver.FindElement(By.XPath("//*[@id='rbottom']"));
                        //now use the switch command
                        driver.SwitchTo().Frame(iframeElement2);
                        Thread.Sleep(2000);
                        //now use the switch command

                        driver.FindElement(By.XPath("//*[@id='a_searchlink']")).Click();
                        Thread.Sleep(6000);
                        driver.FindElement(By.XPath("//*[@id='ui-id-15']")).Click();
                        Thread.Sleep(6000);
                        driver.FindElement(By.XPath("//*[@id='Name1']")).SendKeys(ownername);
                        Thread.Sleep(1000);
                        gc.CreatePdf_WOP(orderNumber, "Owner search", driver, "FL", "Collier");
                        driver.FindElement(By.XPath("//*[@id='SearchName1']")).Click();
                        Thread.Sleep(6000);

                        gc.CreatePdf_WOP(orderNumber, "Owner search Result", driver, "FL", "Collier");
                        try
                        {
                            IWebElement         MultiOwnerTable = driver.FindElement(By.Id("flex1"));
                            IList <IWebElement> MultiOwnerRow   = MultiOwnerTable.FindElements(By.TagName("tr"));
                            IList <IWebElement> MultiOwnerTD;

                            //string AlterNateID = "", PropertyAddress = "", LegalDescriptoin = "", YearBuilt = "";
                            foreach (IWebElement row1 in MultiOwnerRow)
                            {
                                MultiOwnerTD = row1.FindElements(By.TagName("td"));
                                if (MultiOwnerTD.Count != 0 && MultiOwnerTD.Count != 2 && MultiOwnerTD.Count != 1 && !row1.Text.Contains("Parcel No.") && MultiOwnerTD[1].Text.Trim() != "")
                                {
                                    parcelNumber = MultiOwnerTD[1].Text;

                                    ownername       = MultiOwnerTD[3].Text;
                                    PropertyAddress = MultiOwnerTD[5].Text;


                                    string Multi = PropertyAddress + "~" + ownername;
                                    gc.insert_date(orderNumber, parcelNumber, 488, Multi, 1, DateTime.Now);
                                }
                            }

                            //GlobalClass.multiParcel_MiamiDade = "Yes";
                            HttpContext.Current.Session["multiParcel_Collier"] = "Yes";
                            driver.Quit();
                            return("MultiParcel");
                        }
                        catch { }
                    }

                    if (searchType == "parcel")
                    {
                        driver.Navigate().GoToUrl("http://www.collierappraiser.com/");
                        Thread.Sleep(2000);


                        IWebElement iframeElement = driver.FindElement(By.XPath("/html/frameset/frame"));
                        //now use the switch command
                        driver.SwitchTo().Frame(iframeElement);

                        IWebElement iframeElement1 = driver.FindElement(By.XPath("/html/frameset/frame[2]"));
                        //now use the switch command
                        driver.SwitchTo().Frame(iframeElement1);

                        driver.FindElement(By.XPath("//*[@id='AutoNumber3']/tbody/tr/td[3]/table/tbody/tr[4]/td/a")).Click();
                        Thread.Sleep(10000);
                        driver.SwitchTo().DefaultContent();
                        Thread.Sleep(2000);

                        IWebElement iframeElement2 = driver.FindElement(By.XPath("//*[@id='rbottom']"));
                        //now use the switch command
                        driver.SwitchTo().Frame(iframeElement2);
                        Thread.Sleep(2000);
                        //now use the switch command

                        driver.FindElement(By.XPath("//*[@id='a_searchlink']")).Click();
                        Thread.Sleep(6000);
                        driver.FindElement(By.XPath("//*[@id='ui-id-17']")).Click();
                        Thread.Sleep(6000);
                        driver.FindElement(By.XPath("//*[@id='ParcelID']")).SendKeys(parcelNumber);
                        Thread.Sleep(1000);
                        gc.CreatePdf(orderNumber, parcelNumber, "Parcel Search", driver, "FL", "Collier");
                        driver.FindElement(By.XPath("//*[@id='SearchParcelID']")).Click();
                        Thread.Sleep(6000);
                        gc.CreatePdf(orderNumber, parcelNumber, "Parcel Search Result", driver, "FL", "Collier");
                    }
                    try
                    {
                        IAlert alert = driver.SwitchTo().Alert();
                        if (alert.Text.Contains("No Parcels Found"))
                        {
                            HttpContext.Current.Session["Nodata_FLCollier"] = "Yes";
                            driver.Quit();
                            return("No Data Found");
                        }
                    }
                    catch { }
                    string SiteAdr = "", MapNo = "", Strapno = "", Section = "", Township = "", Range = "", Acres = "", MillageArea = "", Condo = "", UseCode = "", School = "", Other = "", Total = "", YearBuilt = "";

                    gc.CreatePdf(orderNumber, parcelNumber, "Property Deatil", driver, "FL", "Collier");
                    parcelNumber = driver.FindElement(By.XPath("//*[@id='ParcelID']")).Text;
                    ownername    = driver.FindElement(By.XPath("//*[@id='Name1']")).Text;
                    try
                    {
                        ownername = driver.FindElement(By.XPath("//*[@id='Name1']")).Text + " " + driver.FindElement(By.XPath("//*[@id='Name2']")).Text;
                    }
                    catch { }
                    try
                    {
                        SiteAdr = driver.FindElement(By.XPath("//*[@id='FullAddress']")).Text + " " + driver.FindElement(By.XPath("//*[@id='City']")).Text + " " + driver.FindElement(By.XPath("//*[@id='State']")).Text;
                    }
                    catch { }
                    MapNo       = driver.FindElement(By.XPath("//*[@id='MapNumber']")).Text;
                    Strapno     = driver.FindElement(By.XPath("//*[@id='StrapNumber']")).Text;
                    Section     = driver.FindElement(By.XPath("//*[@id='Section']")).Text;
                    Township    = driver.FindElement(By.XPath("//*[@id='Township']")).Text;
                    Range       = driver.FindElement(By.XPath("//*[@id='Range']")).Text;
                    Acres       = driver.FindElement(By.XPath("//*[@id='TotalAcres']")).Text;
                    MillageArea = driver.FindElement(By.XPath("//*[@id='MillageArea']")).Text;
                    Condo       = driver.FindElement(By.XPath("//*[@id='scDescription']")).Text;
                    UseCode     = driver.FindElement(By.XPath("//*[@id='ucDescription']")).Text;
                    School      = driver.FindElement(By.XPath("//*[@id='School']")).Text;
                    Other       = driver.FindElement(By.XPath("//*[@id='Other']")).Text;
                    Total       = driver.FindElement(By.XPath("//*[@id='Total']")).Text;

                    driver.FindElement(By.XPath("//*[@id='ui-id-2']")).Click();
                    Thread.Sleep(4000);
                    gc.CreatePdf(orderNumber, parcelNumber, "Property Summary", driver, "FL", "Collier");
                    try
                    {
                        YearBuilt = driver.FindElement(By.XPath("//*[@id='trBuilding1']/td[2]")).Text;
                    }
                    catch { }
                    string property = ownername + "~" + SiteAdr + "~" + MapNo + "~" + Strapno + "~" + Section + "~" + Township + "~" + Range + "~" + Acres + "~" + MillageArea + "~" + Condo + "~" + UseCode + "~" + School + "~" + Other + "~" + Total + "~" + YearBuilt;

                    gc.insert_date(orderNumber, parcelNumber, 469, property, 1, DateTime.Now);
                    driver.FindElement(By.XPath("//*[@id='ui-id-1']")).Click();
                    Thread.Sleep(4000);

                    string              LandValue = "", ImprovedValue = "", Marketvalue = "", SaveOurHome = "", AssessedValue = "", Homestead = "", SchoolTaxableValue = "", AdditionalHomestead = "", TaxableValue = "";
                    IWebElement         TaxHisTBD = driver.FindElement(By.XPath("//*[@id='PropSum']/table[6]/tbody/tr/td[3]/table/tbody"));
                    IList <IWebElement> TaxHisTRD = TaxHisTBD.FindElements(By.TagName("tr"));
                    IList <IWebElement> TaxHisTDD;

                    foreach (IWebElement row1 in TaxHisTRD)
                    {
                        TaxHisTDD = row1.FindElements(By.TagName("td"));
                        if (!row1.Text.Contains("Certified Tax Roll") && !row1.Text.Contains("(Subject") && row1.Text.Trim() != "" && TaxHisTDD.Count != 1)
                        {
                            LandValue     = TaxHisTDD[0].Text + "~" + LandValue;
                            ImprovedValue = TaxHisTDD[1].Text + "~" + ImprovedValue;
                        }
                    }

                    LandValue     = LandValue + "lk";
                    ImprovedValue = ImprovedValue + "lk";

                    LandValue     = LandValue.Replace("~lk", "");
                    ImprovedValue = ImprovedValue.Replace("~lk", "");
                    DBconnection dbconn = new DBconnection();
                    dbconn.ExecuteQuery("update  data_field_master set Data_Fields_Text='" + LandValue + "' where Id = '" + 470 + "'");
                    gc.insert_date(orderNumber, parcelNumber, 470, ImprovedValue, 1, DateTime.Now);
                    AssessmentTime = DateTime.Now.ToString("HH:mm:ss");

                    driver.Navigate().GoToUrl("https://collier.county-taxes.com/public");
                    Thread.Sleep(2000);

                    driver.FindElement(By.XPath("//*[@id='search-controls']/div/form[1]/div[1]/div/input")).SendKeys(parcelNumber);
                    gc.CreatePdf(orderNumber, parcelNumber, "Taxinfo", driver, "FL", "Collier");
                    driver.FindElement(By.XPath("//*[@id='search-controls']/div/form[1]/div[1]/div/span/button")).SendKeys(Keys.Enter);
                    Thread.Sleep(3000);
                    try
                    {
                        IWebElement ITaxSearch    = driver.FindElement(By.LinkText("Full bill history"));
                        string      strITaxSearch = ITaxSearch.GetAttribute("href");
                        driver.Navigate().GoToUrl(strITaxSearch);
                        Thread.Sleep(3000);
                        gc.CreatePdf(orderNumber, parcelNumber, "Full bill history", driver, "FL", "Collier");
                    }
                    catch { }

                    try
                    {
                        IWebElement         ITaxReal    = driver.FindElement(By.XPath("//*[@id='content']/div[1]/table"));
                        IList <IWebElement> ITaxRealRow = ITaxReal.FindElements(By.TagName("tr"));
                        IList <IWebElement> ITaxRealTd;
                        int k = 0;
                        foreach (IWebElement ItaxReal in ITaxRealRow)
                        {
                            ITaxRealTd = ItaxReal.FindElements(By.TagName("td"));
                            if ((k <= 2 && ItaxReal.Text.Contains("Annual Bill")) || ItaxReal.Text.Contains("Pay this bill:"))
                            {
                                string      yearbill      = ITaxRealTd[0].Text;
                                IWebElement ITaxBillCount = ITaxRealTd[0].FindElement(By.TagName("a"));
                                string      strTaxReal    = ITaxBillCount.GetAttribute("href");
                                strTaxRealestate.Add(strTaxReal);
                                try
                                {
                                    IWebElement ITaxBill = ITaxRealTd[3].FindElement(By.TagName("a"));
                                    string      BillTax  = ITaxBill.GetAttribute("href");
                                    gc.downloadfile(BillTax, orderNumber, parcelNumber, "Taxbill.pdf" + yearbill, "FL", "Collier");
                                }
                                catch
                                {
                                    IWebElement ITaxBill = ITaxRealTd[4].FindElement(By.TagName("a"));
                                    string      BillTax  = ITaxBill.GetAttribute("href");
                                    gc.downloadfile(BillTax, orderNumber, parcelNumber, "Taxbill.pdf" + yearbill, "FL", "Collier");
                                }
                                k++;
                            }
                        }

                        //Tax History Details

                        IWebElement         IBillHistorytable = driver.FindElement(By.XPath("//*[@id='content']/div[1]/table"));
                        IList <IWebElement> IBillHistoryRow   = IBillHistorytable.FindElements(By.TagName("tr"));
                        IList <IWebElement> IBillHistoryTD;
                        foreach (IWebElement bill in IBillHistoryRow)
                        {
                            IBillHistoryTD = bill.FindElements(By.TagName("td"));
                            if (IBillHistoryTD.Count != 0)
                            {
                                try
                                {
                                    strBill     = IBillHistoryTD[0].Text.Replace("\r\n", " ").TrimStart().TrimEnd();
                                    strBalance  = IBillHistoryTD[1].Text.Replace("\r\n", " ").TrimStart().TrimEnd();
                                    strBillDate = IBillHistoryTD[2].Text.Replace("\r\n", " ").TrimStart().TrimEnd();
                                    strBillPaid = IBillHistoryTD[3].Text.Replace("\r\n", " ").TrimStart().TrimEnd();
                                }
                                catch
                                {
                                    strBillDate = "";
                                    strBillPaid = "";
                                }
                                if (strBillPaid.Contains("Print (PDF)"))
                                {
                                    strBillPaid = "";
                                }
                                string strTaxHistory = strBill + "~" + strBalance + "~" + strBillDate + "~" + strBillPaid;
                                gc.insert_date(orderNumber, parcelNumber, 471, strTaxHistory, 1, DateTime.Now);
                            }
                        }

                        IWebElement         IBillHistoryfoottable = driver.FindElement(By.XPath("//*[@id='content']/div[1]/table/tfoot"));
                        IList <IWebElement> IBillHistoryfootRow   = IBillHistoryfoottable.FindElements(By.TagName("tr"));
                        IList <IWebElement> IBillHistoryfootTD;
                        foreach (IWebElement bill in IBillHistoryRow)
                        {
                            IBillHistoryfootTD = bill.FindElements(By.TagName("th"));
                            if (IBillHistoryfootTD.Count != 0 && bill.Text.Contains("Total"))
                            {
                                try
                                {
                                    strFBill     = IBillHistoryfootTD[0].Text.Replace("\r\n", " ").TrimStart().TrimEnd();
                                    strFBalance  = IBillHistoryfootTD[1].Text.Replace("\r\n", " ").TrimStart().TrimEnd();
                                    strFBillDate = IBillHistoryfootTD[2].Text.Replace("\r\n", " ").TrimStart().TrimEnd();
                                    strFBillPaid = IBillHistoryfootTD[3].Text.Replace("\r\n", " ").TrimStart().TrimEnd();
                                }
                                catch
                                {
                                    strFBillDate = "";
                                    strFBillPaid = "";
                                }
                                if (strBillPaid.Contains("Print (PDF)"))
                                {
                                    strBillPaid = "";
                                }
                                string strTaxHistory = strFBill + "~" + strFBalance + "~" + strFBillDate + "~" + strFBillPaid;
                                gc.insert_date(orderNumber, parcelNumber, 471, strTaxHistory, 1, DateTime.Now);
                            }
                        }
                        foreach (string real in strTaxRealestate)
                        {
                            driver.Navigate().GoToUrl(real);
                            Thread.Sleep(4000);

                            try
                            {
                                TaxYear = driver.FindElement(By.XPath("//*[@id='content']/div[1]/div[8]/div/div[1]")).Text;
                                TaxYear = WebDriverTest.After(TaxYear, "Real Estate").Trim();
                                string   s     = TaxYear;
                                string[] words = TaxYear.Split(' ');
                                TaxYear = words[0];
                            }
                            catch
                            {
                                TaxYear = driver.FindElement(By.XPath("//*[@id='content']/div[1]/div[7]/div/div[1]")).Text;
                                TaxYear = WebDriverTest.After(TaxYear, "Real Estate").Trim();
                                string   s     = TaxYear;
                                string[] words = TaxYear.Split(' ');
                                TaxYear = words[0];
                            }

                            gc.CreatePdf(orderNumber, parcelNumber, "Tax details" + TaxYear, driver, "FL", "Collier");
                            IWebElement multitableElement3;
                            try
                            {
                                multitableElement3 = driver.FindElement(By.XPath("//*[@id='content']/div[1]/div[8]/div/table[2]/tbody"));
                            }
                            catch
                            {
                                multitableElement3 = driver.FindElement(By.XPath("//*[@id='content']/div[1]/div[7]/div/table[2]/tbody"));
                            }
                            IList <IWebElement> multitableRow3 = multitableElement3.FindElements(By.TagName("tr"));

                            IList <IWebElement> multirowTD3;
                            foreach (IWebElement row in multitableRow3)
                            {
                                multirowTD3 = row.FindElements(By.TagName("td"));
                                if (multirowTD3.Count != 1 && multirowTD3[1].Text.Trim() != "")
                                {
                                    string tax_distri = TaxYear + "~" + multirowTD3[0].Text.Trim() + "~" + "Ad Valorem" + "~" + multirowTD3[1].Text.Trim() + "~" + multirowTD3[2].Text.Trim() + "~" + multirowTD3[3].Text.Trim() + "~" + multirowTD3[4].Text.Trim() + "~" + "" + "~" + multirowTD3[5].Text.Trim();
                                    gc.insert_date(orderNumber, parcelNumber, 472, tax_distri, 1, DateTime.Now);
                                }
                            }

                            //total advalorem
                            IWebElement multitableElement31;
                            try
                            {
                                multitableElement31 = driver.FindElement(By.XPath("//*[@id='content']/div[1]/div[8]/div/table[2]/tfoot"));
                            }
                            catch
                            {
                                multitableElement31 = driver.FindElement(By.XPath("//*[@id='content']/div[1]/div[7]/div/table[2]/tfoot"));
                            }
                            IList <IWebElement> multitableRow31 = multitableElement31.FindElements(By.TagName("tr"));

                            IList <IWebElement> multirowTD31;
                            foreach (IWebElement row in multitableRow31)
                            {
                                multirowTD31 = row.FindElements(By.TagName("td"));
                                if (multirowTD31.Count != 1)
                                {
                                    string tax_distri1 = TaxYear + "~" + "Total:" + "~" + "Ad Valorem" + "~" + multirowTD31[0].Text.Trim() + "~" + "" + "~" + "" + "~" + "" + "~" + "" + "~" + multirowTD31[1].Text.Trim();
                                    gc.insert_date(orderNumber, parcelNumber, 472, tax_distri1, 1, DateTime.Now);
                                }
                            }
                            //  Non - Ad Valorem
                            try
                            {
                                IWebElement multitableElement32;
                                try
                                {
                                    multitableElement32 = driver.FindElement(By.XPath("//*[@id='content']/div[1]/div[8]/div/table[3]/tbody"));
                                }
                                catch
                                {
                                    multitableElement32 = driver.FindElement(By.XPath("//*[@id='content']/div[1]/div[7]/div/table[3]/tbody"));
                                }
                                IList <IWebElement> multitableRow32 = multitableElement32.FindElements(By.TagName("tr"));
                                IList <IWebElement> multirowTD32;
                                foreach (IWebElement row in multitableRow32)
                                {
                                    multirowTD32 = row.FindElements(By.TagName("td"));
                                    if (multirowTD32.Count != 1 && multirowTD32[0].Text.Trim() != "")
                                    {
                                        string tax_distri2 = TaxYear + "~" + multirowTD32[0].Text.Trim() + "~" + "Non-Ad Valorem " + "~" + "" + "~" + "" + "~" + "" + "~" + "" + "~" + multirowTD32[1].Text.Trim() + "~" + multirowTD32[2].Text.Trim();
                                        gc.insert_date(orderNumber, parcelNumber, 472, tax_distri2, 1, DateTime.Now);
                                    }
                                }
                                //total non-advalorem

                                IWebElement multitableElement33;
                                try
                                {
                                    multitableElement33 = driver.FindElement(By.XPath("//*[@id='content']/div[1]/div[8]/div/table[3]/tfoot"));
                                }
                                catch
                                {
                                    multitableElement33 = driver.FindElement(By.XPath("//*[@id='content']/div[1]/div[7]/div/table[3]/tfoot"));
                                }
                                IList <IWebElement> multitableRow33 = multitableElement33.FindElements(By.TagName("tr"));
                                IList <IWebElement> multirowTD33;
                                foreach (IWebElement row in multitableRow33)
                                {
                                    multirowTD33 = row.FindElements(By.TagName("td"));
                                    if (multirowTD33.Count != 0)
                                    {
                                        string tax_distri1 = TaxYear + "~" + "Total:" + "~" + "Non-Ad Valorem " + "~" + "" + "~" + "" + "~" + "" + "~" + "" + "~" + "" + "~" + multirowTD33[0].Text.Trim();
                                        gc.insert_date(orderNumber, parcelNumber, 472, tax_distri1, 1, DateTime.Now);
                                    }
                                }
                            }
                            catch { }
                            //  Taxing_authority~Tax_type~Millage~Assessed~Exemption~Taxable~Rate~Tax
                            //Tax info
                            try
                            {
                                TaxAmount  = driver.FindElement(By.XPath("//*[@id='content']/div[1]/div[7]/div/p")).Text.Replace("Combined taxes and assessments:", "");
                                PaidAmount = driver.FindElement(By.XPath("//*[@id='content']/div[1]/div[7]/div/div[6]/div/div[1]/div/div")).Text;
                                PaidAmount = PaidAmount.Replace("\r\n", "&");
                                PaidAmount = WebDriverTest.Before(PaidAmount, "&");
                                PaidAmount = WebDriverTest.After(PaidAmount, "$").Trim();

                                ReceiptNumber = driver.FindElement(By.XPath("//*[@id='content']/div[1]/div[7]/div/div[6]/div/div[1]/div/div/div")).Text.Replace("Receipt", "");
                                IWebElement         tbmulti = driver.FindElement(By.XPath("//*[@id='content']/div[1]/div[7]/div/table[1]/tbody"));
                                IList <IWebElement> TRmulti = tbmulti.FindElements(By.TagName("tr"));
                                IList <IWebElement> TDmulti;
                                foreach (IWebElement row in TRmulti)
                                {
                                    TDmulti = row.FindElements(By.TagName("td"));
                                    if (TDmulti.Count != 0)
                                    {
                                        Account_number = TDmulti[0].Text;
                                        string Escro_Code = TDmulti[2].Text;
                                        Millage_Code = TDmulti[3].Text;

                                        string tax_info1 = Account_number + "~" + Millage_Code + "~" + Escro_Code + "~" + TaxYear + "~" + TaxAmount + "~" + PaidAmount + "~" + ReceiptNumber + "~" + "Doug Belden, Tax Collector P.O. Box 30012 Tampa, Florida 33630-3012";

                                        gc.insert_date(orderNumber, parcelNumber, 473, tax_info1, 1, DateTime.Now);
                                    }
                                }
                            }
                            catch
                            {
                                TaxAmount = driver.FindElement(By.XPath("//*[@id='content']/div[1]/div[8]/div/p")).Text.Replace("Combined taxes and assessments:", "");

                                PaidAmount = driver.FindElement(By.XPath("//*[@id='content']/div[1]/div[8]/div/div[3]")).Text;
                                if (PaidAmount.Contains("Pay this bill"))
                                {
                                    PaidAmount    = "";
                                    ReceiptNumber = "";
                                }
                                else
                                {
                                    PaidAmount = PaidAmount.Replace("\r\n", "&");
                                    var PaidAmount1 = PaidAmount.Split('&');
                                    PaidAmount    = PaidAmount1[0];
                                    PaidAmount    = WebDriverTest.After(PaidAmount, "$").Trim();
                                    ReceiptNumber = PaidAmount1[1];
                                }

                                IWebElement         tbmulti = driver.FindElement(By.XPath("//*[@id='content']/div[1]/div[8]/div/table[1]/tbody"));
                                IList <IWebElement> TRmulti = tbmulti.FindElements(By.TagName("tr"));

                                IList <IWebElement> TDmulti;
                                foreach (IWebElement row in TRmulti)
                                {
                                    TDmulti = row.FindElements(By.TagName("td"));
                                    if (TDmulti.Count != 0)
                                    {
                                        Account_number = TDmulti[0].Text;
                                        string Escro_Code = TDmulti[2].Text;
                                        Millage_Code = TDmulti[3].Text;
                                        string tax_info1 = Account_number + "~" + Millage_Code + "~" + Escro_Code + "~" + TaxYear + "~" + TaxAmount + "~" + PaidAmount + "~" + ReceiptNumber + "~" + "Doug Belden, Tax Collector P.O. Box 30012 Tampa, Florida 33630-3012";
                                        gc.insert_date(orderNumber, parcelNumber, 473, tax_info1, 1, DateTime.Now);
                                    }
                                }
                            }
                            string IfPaidBy = "", PlesePay = "", DueDate = "", deli = "";
                            try
                            {
                                IWebElement         multitableElement26 = driver.FindElement(By.XPath("//*[@id='content']/div[1]/div[8]/div/table[4]/tbody"));
                                IList <IWebElement> multitableRow26     = multitableElement26.FindElements(By.TagName("tr"));

                                IList <IWebElement> multirowTD26;
                                foreach (IWebElement row in multitableRow26)
                                {
                                    multirowTD26 = row.FindElements(By.TagName("td"));
                                    int iRowsCount = multirowTD26.Count;
                                    for (int n = 0; n < iRowsCount; n++)
                                    {
                                        if ((!multirowTD26[n].Text.Contains("Face Amt")) && (!multirowTD26[n].Text.Contains("Certificate")))
                                        {
                                            IfPaidBy = multirowTD26[n].Text.Replace("\r\n", "~");
                                            var IfpaySplit = IfPaidBy.Split('~');
                                            IfPaidBy = IfpaySplit[0];
                                            PlesePay = IfpaySplit[1];
                                            if (PlesePay == "$0.00")
                                            {
                                                deli = "paid";
                                            }
                                            else
                                            {
                                                deli = "deliquent";
                                            }
                                            DueDate = TaxYear + "~" + deli + "~" + IfPaidBy + "~" + PlesePay;
                                            gc.insert_date(orderNumber, parcelNumber, 474, DueDate, 1, DateTime.Now);
                                        }
                                    }
                                }
                            }
                            //If_paid_by~Please_Pay
                            catch
                            {
                                IWebElement         multitableElement26 = driver.FindElement(By.XPath("//*[@id='content']/div[1]/div[7]/div/table[4]/tbody"));
                                IList <IWebElement> multitableRow26     = multitableElement26.FindElements(By.TagName("tr"));

                                IList <IWebElement> multirowTD26;
                                foreach (IWebElement row in multitableRow26)
                                {
                                    multirowTD26 = row.FindElements(By.TagName("td"));
                                    int iRowsCount = multirowTD26.Count;
                                    for (int n = 0; n < iRowsCount; n++)
                                    {
                                        if ((!multirowTD26[n].Text.Contains("Face Amt")) && (!multirowTD26[n].Text.Contains("Certificate")))
                                        {
                                            IfPaidBy = multirowTD26[n].Text.Replace("\r\n", "~");
                                            var IfpaySplit = IfPaidBy.Split('~');
                                            IfPaidBy = IfpaySplit[0];
                                            PlesePay = IfpaySplit[1];
                                            if (PlesePay == "$0.00")
                                            {
                                                deli = "paid";
                                            }
                                            else
                                            {
                                                deli = "deliquent";
                                            }
                                            DueDate = TaxYear + "~" + deli + "~" + IfPaidBy + "~" + PlesePay;
                                            gc.insert_date(orderNumber, parcelNumber, 474, DueDate, 1, DateTime.Now);
                                        }
                                    }
                                }
                            }

                            //*[@id="content"]/div[1]/div[3]/div[1]/ul/li[1]/a
                            driver.FindElement(By.XPath("//*[@id='content']/div[1]/div[3]/div[1]/ul/li[1]/a")).Click();
                            Thread.Sleep(5000);
                            gc.CreatePdf(orderNumber, parcelNumber, "parcel details" + TaxYear, driver, "FL", "Collier");
                        }
                    }
                    catch { }
                    TaxTime     = DateTime.Now.ToString("HH:mm:ss");
                    LastEndTime = DateTime.Now.ToString("HH:mm:ss");
                    gc.insert_TakenTime(orderNumber, "FL", "Collier", StartTime, AssessmentTime, TaxTime, CitytaxTime, LastEndTime);

                    driver.Quit();
                    gc.mergpdf(orderNumber, "FL", "Collier");
                    //gc.MMREM_Template(orderNumber, parcelNumber, "", driver, "FL", "Collier", "138", "4");
                    return("Data Inserted Successfully");
                }
                catch (Exception ex)
                {
                    driver.Quit();
                    GlobalClass.LogError(ex, orderNumber);
                    throw ex;
                }
            }
        }
Beispiel #6
0
        public string FTP_FLMarion(string address, string assessment_id, string parcelNumber, string searchType, string orderNumber, string directParcel, string ownername)
        {
            GlobalClass.global_orderNo             = orderNumber;
            HttpContext.Current.Session["orderNo"] = orderNumber;
            GlobalClass.global_parcelNo            = parcelNumber;
            List <string> mcheck = new List <string>();

            string StartTime = "", AssessmentTime = "", TaxTime = "", CitytaxTime = "", LastEndTime = "";

            var driverService = PhantomJSDriverService.CreateDefaultService();

            driverService.HideCommandPromptWindow = true;
            using (driver = new PhantomJSDriver())
            {
                //driver = new ChromeDriver();

                try
                {
                    StartTime = DateTime.Now.ToString("HH:mm:ss");

                    if (searchType == "titleflex")
                    {
                        titleaddress = address;
                        titleOwner   = ownername;
                        gc.TitleFlexSearch(orderNumber, "", ownername, titleaddress, "FL", "Marion");

                        if ((HttpContext.Current.Session["TitleFlex_Search"] != null && HttpContext.Current.Session["TitleFlex_Search"].ToString() == "Yes"))
                        {
                            driver.Quit();
                            return("MultiParcel");
                        }
                        else if (HttpContext.Current.Session["titleparcel"].ToString() == "")
                        {
                            HttpContext.Current.Session["Nodata_FLMarion"] = "Yes";
                            driver.Quit();
                            return("No Data Found");
                        }
                        parcelNumber = HttpContext.Current.Session["titleparcel"].ToString();
                        searchType   = "parcel";
                    }

                    if (searchType == "address")
                    {
                        driver.Navigate().GoToUrl("http://www.pa.marion.fl.us/PropertySearch.aspx");
                        Thread.Sleep(2000);

                        driver.FindElement(By.Id("MCPAMaster_MCPAContent_rblSearchBy_0")).Click();
                        Thread.Sleep(2000);

                        driver.FindElement(By.Id("MCPAMaster_MCPAContent_txtParm")).SendKeys(address);

                        driver.FindElement(By.Id("MCPAMaster_MCPAContent_btnWine")).SendKeys(Keys.Enter);
                        gc.CreatePdf_WOP(orderNumber, "Address search", driver, "FL", "Marion");
                        Thread.Sleep(2000);

                        try
                        {
                            IWebElement         MultiAddressTB = driver.FindElement(By.XPath("//*[@id='srch']/table[1]/tbody"));
                            IList <IWebElement> MultiAddressTR = MultiAddressTB.FindElements(By.TagName("tr"));
                            IList <IWebElement> MultiAddressTD;
                            gc.CreatePdf_WOP(orderNumber, "Multi Address search", driver, "FL", "Marion");

                            if (MultiAddressTR.Count == 1)
                            {
                                driver.FindElement(By.XPath("//*[@id='srch']/table[1]/tbody/tr/td[1]/a")).Click();
                                Thread.Sleep(4000);
                            }

                            else
                            {
                                int    AddressmaxCheck = 0;
                                string xpath           = "";
                                int    m = 1;
                                foreach (IWebElement MultiAddress in MultiAddressTR)
                                {
                                    if (AddressmaxCheck <= 25)
                                    {
                                        MultiAddressTD = MultiAddress.FindElements(By.TagName("td"));
                                        if (MultiAddressTD.Count != 0 && MultiAddress.Text.Contains(address.ToUpper()))
                                        {
                                            IWebElement Parcelno1 = MultiAddressTD[0].FindElement(By.TagName("a"));
                                            Parcelno         = Parcelno1.Text;
                                            Owner            = MultiAddressTD[1].Text;
                                            Property_Address = MultiAddressTD[2].Text;

                                            MultiAddress_details = Owner + "~" + Property_Address;
                                            gc.insert_date(orderNumber, Parcelno, 672, MultiAddress_details, 1, DateTime.Now);

                                            xpath = "//*[@id='srch']/table[1]/tbody/tr[" + m + "]/td[1]/a";
                                            mcheck.Add(MultiAddressTD[0].Text.Trim());
                                        }
                                        m++;
                                    }
                                    AddressmaxCheck++;
                                }
                                if (mcheck.Count == 1)
                                {
                                    driver.FindElement(By.XPath(xpath)).Click();
                                    Thread.Sleep(4000);
                                }
                                else
                                {
                                    if (MultiAddressTR.Count > 25)
                                    {
                                        HttpContext.Current.Session["multiParcel_FLMarion_Multicount"] = "Maximum";
                                        driver.Quit();
                                        return("Maximum");
                                    }
                                    else
                                    {
                                        HttpContext.Current.Session["multiparcel_FLMarion"] = "Yes";
                                        driver.Quit();
                                        return("MultiParcel");
                                    }
                                }
                            }
                        }
                        catch
                        { }
                        try
                        {
                            //No Data Found
                            string nodata = driver.FindElement(By.Id("srch")).Text;
                            if (nodata.Contains("0 records found. End of search reached."))
                            {
                                HttpContext.Current.Session["Nodata_FLMarion"] = "Yes";
                                driver.Quit();
                                return("No Data Found");
                            }
                        }
                        catch { }
                    }

                    if (searchType == "parcel")
                    {
                        driver.Navigate().GoToUrl("http://www.pa.marion.fl.us/PropertySearch.aspx");
                        Thread.Sleep(2000);

                        driver.FindElement(By.Id("MCPAMaster_MCPAContent_rblSearchBy_2")).Click();
                        Thread.Sleep(2000);

                        driver.FindElement(By.Id("MCPAMaster_MCPAContent_txtParm")).SendKeys(parcelNumber);

                        driver.FindElement(By.Id("MCPAMaster_MCPAContent_btnWine")).SendKeys(Keys.Enter);
                        gc.CreatePdf(orderNumber, parcelNumber, "ParcelSearch", driver, "FL", "Marion");
                        Thread.Sleep(2000);

                        driver.FindElement(By.XPath("//*[@id='srch']/table[1]/tbody/tr/td[1]/a")).Click();
                        Thread.Sleep(2000);
                        try
                        {
                            //No Data Found
                            string nodata = driver.FindElement(By.Id("srch'")).Text;
                            if (nodata.Contains("0 records found. End of search reached."))
                            {
                                HttpContext.Current.Session["Nodata_FLMarion"] = "Yes";
                                driver.Quit();
                                return("No Data Found");
                            }
                        }
                        catch { }
                    }

                    if (searchType == "ownername")
                    {
                        var chromeOptions = new ChromeOptions();
                        var chDriver      = new ChromeDriver(chromeOptions);

                        chDriver.Navigate().GoToUrl("http://www.pa.marion.fl.us/PropertySearch.aspx");
                        Thread.Sleep(2000);

                        chDriver.FindElement(By.Id("MCPAMaster_MCPAContent_rblSearchBy_1")).Click();
                        Thread.Sleep(2000);

                        chDriver.FindElement(By.Id("MCPAMaster_MCPAContent_txtParm")).SendKeys(ownername);

                        chDriver.FindElement(By.Id("MCPAMaster_MCPAContent_btnWine")).SendKeys(Keys.Enter);
                        gc.CreatePdf_WOP(orderNumber, "Owner search", chDriver, "FL", "Marion");
                        Thread.Sleep(2000);

                        try
                        {
                            IWebElement         MultiOwnerTB = chDriver.FindElement(By.XPath("//*[@id='srch']/table[1]/tbody"));
                            IList <IWebElement> MultiOwnerTR = MultiOwnerTB.FindElements(By.TagName("tr"));
                            IList <IWebElement> MultiOwnerTD;
                            gc.CreatePdf_WOP(orderNumber, "Multi Owner search", chDriver, "FL", "Marion");

                            if (MultiOwnerTR.Count == 1)
                            {
                                chDriver.FindElement(By.XPath("//*[@id='srch']/table[1]/tbody/tr/td[1]/a")).Click();
                                Thread.Sleep(2000);
                            }

                            else
                            {
                                int OwnermaxCheck = 0;
                                foreach (IWebElement MultiOwner in MultiOwnerTR)
                                {
                                    if (OwnermaxCheck <= 25)
                                    {
                                        MultiOwnerTD = MultiOwner.FindElements(By.TagName("td"));
                                        if (MultiOwnerTD.Count != 0)
                                        {
                                            IWebElement Parcelno1 = MultiOwnerTD[0].FindElement(By.TagName("a"));
                                            Parcelno         = Parcelno1.Text;
                                            Owner            = MultiOwnerTD[1].Text;
                                            Property_Address = MultiOwnerTD[2].Text;

                                            MultiOwner_details = Owner + "~" + Property_Address;
                                            gc.insert_date(orderNumber, Parcelno, 672, MultiOwner_details, 1, DateTime.Now);
                                        }
                                        OwnermaxCheck++;
                                    }
                                }
                                if (MultiOwnerTR.Count > 25)
                                {
                                    HttpContext.Current.Session["multiParcel_FLMarion_Multicount"] = "Maximum";
                                }
                                else
                                {
                                    HttpContext.Current.Session["multiparcel_FLMarion"] = "Yes";
                                }
                                chDriver.Quit();

                                return("MultiParcel");
                            }
                        }
                        catch
                        { }

                        try
                        {
                            //No Data Found
                            string nodata = driver.FindElement(By.XPath("//*[@id='srch']/text()")).Text;
                            if (nodata.Contains("0 records found. End of search reached."))
                            {
                                HttpContext.Current.Session["Nodata_FLMarion"] = "Yes";
                                driver.Quit();
                                return("No Data Found");
                            }
                        }
                        catch { }
                        chDriver.Quit();
                    }

                    Thread.Sleep(3000);
                    driver.SwitchTo().Window(driver.WindowHandles.Last());
                    Thread.Sleep(4000);

                    //Property Details
                    //try
                    //{
                    //    driver.FindElement(By.XPath("//*[@id='prc']/div/a[1]")).Click();
                    //    Thread.Sleep(6000);
                    //}
                    //catch
                    //{ }


                    try
                    {
                        ParcelID      = driver.FindElement(By.XPath("//*[@id='prc']/table/tbody/tr/td/h1")).Text;
                        Primary_Key   = driver.FindElement(By.XPath("//*[@id='prc']/table/tbody/tr/td/table[1]/tbody/tr/td[1]")).Text;
                        Primary_Key   = WebDriverTest.After(Primary_Key, "Prime Key: ");
                        Owner_Mailing = driver.FindElement(By.XPath("//*[@id='prc']/table/tbody/tr/td/table[2]/tbody/tr/td[1]")).Text;

                        try
                        {
                            driver.FindElement(By.XPath("//*[@id='prc']/div/a[2]")).Click();
                            Thread.Sleep(2000);
                            full           = driver.FindElement(By.XPath("//*[@id='prc']/table/tbody/tr/td/table[2]/tbody/tr/td[2]")).Text;
                            Taxes_Assments = gc.Between(full, "Taxes / Assessments:", "Map ID:");
                            try
                            {
                                assess1  = driver.FindElement(By.XPath("//*[@id='prc']/table/tbody/tr/td/table[3]/tbody/tr/td[1]")).Text.Replace("\r\n", "~");
                                assess11 = driver.FindElement(By.XPath("//*[@id='prc']/table/tbody/tr/td/table[3]/tbody/tr/td[2]")).Text.Replace("\r\n", "~");

                                DBconnection dbconn = new DBconnection();
                                dbconn.ExecuteQuery("update data_field_master set Data_Fields_Text='" + assess1 + "' where Id = '" + 692 + "'");
                                gc.CreatePdf(orderNumber, ParcelID, "Assessment1 Details", driver, "FL", "Marion");
                                gc.insert_date(orderNumber, ParcelID, 692, assess11, 1, DateTime.Now);
                            }
                            catch
                            { }

                            //History Accessd Values
                            try
                            {
                                IWebElement         HistoryTB = driver.FindElement(By.XPath("//*[@id='prc']/table/tbody/tr/td/table[4]/tbody"));
                                IList <IWebElement> HistoryTR = HistoryTB.FindElements(By.TagName("tr"));
                                IList <IWebElement> HistoryTD;

                                foreach (IWebElement History in HistoryTR)
                                {
                                    HistoryTD = History.FindElements(By.TagName("td"));
                                    if (HistoryTD.Count != 0 && HistoryTR.Count != 1)
                                    {
                                        Year        = HistoryTD[0].Text;
                                        Land_Just   = HistoryTD[1].Text;
                                        Building    = HistoryTD[2].Text;
                                        Misc_Value  = HistoryTD[3].Text;
                                        Mkt_Just    = HistoryTD[4].Text;
                                        Assed_Value = HistoryTD[5].Text;
                                        Exceptions  = HistoryTD[6].Text;
                                        Taxabl_Val  = HistoryTD[7].Text;

                                        History_details = Year + "~" + Land_Just + "~" + Building + "~" + Misc_Value + "~" + Mkt_Just + "~" + Assed_Value + "~" + Exceptions + "~" + Taxabl_Val;
                                        gc.insert_date(orderNumber, ParcelID, 693, History_details, 1, DateTime.Now);
                                    }
                                }
                            }
                            catch
                            { }
                            driver.Navigate().Back();
                            Thread.Sleep(5000);
                        }
                        catch
                        { }
                        Map_Id  = gc.Between(full, "Map ID:", "Millage:");
                        Millage = GlobalClass.After(full, "Millage:");
                        full1   = driver.FindElement(By.XPath("//*[@id='prc']/table/tbody/tr/td/table[2]/tbody/tr/td[3]")).Text;
                        try
                        {
                            Acres = gc.Between(full1, "Acres: ", "Situs: ").Replace("More Situs", "");
                            Situs = WebDriverTest.After(full1, "Situs: ");
                        }
                        catch { }

                        Proty_Desp = driver.FindElement(By.XPath("//*[@id='prc']/table/tbody/tr/td")).Text;
                        Proty_Desp = gc.Between(Proty_Desp, "Property Description", "Land Data - Warning: Verify Zoning");
                        try
                        {
                            Improve1 = driver.FindElement(By.XPath("//*[@id='prc']/table/tbody/tr/td/table[6]/tbody/tr/td[1]/table/tbody/tr/td[2]")).Text.Replace("\r\n", "~");

                            string[] rowarrayname1 = Improve1.Split('~');

                            Improve    = rowarrayname1[0];
                            Year_Built = driver.FindElement(By.XPath("//*[@id='prc']/table/tbody/tr/td/table[6]/tbody/tr/td[2]")).Text;
                            Year_Built = gc.Between(Year_Built, "Year Built", "Physical Deterioration");
                        }
                        catch
                        { }

                        property = Primary_Key + "~" + Owner_Mailing + "~" + Situs + "~" + Taxes_Assments + "~" + Map_Id + "~" + Millage + "~" + Acres + "~" + Proty_Desp + "~" + Improve + "~" + Year_Built;
                        gc.CreatePdf(orderNumber, ParcelID, "Assessment11 Details", driver, "FL", "Marion");
                        gc.insert_date(orderNumber, ParcelID, 691, property, 1, DateTime.Now);
                    }
                    catch
                    { }

                    //try
                    //{
                    //    assess = driver.FindElement(By.XPath("//*[@id='prc']/table/tbody/tr/td/table[3]/tbody/tr/td[1]")).Text.Replace("\r\n", "~");
                    //    assess1 = driver.FindElement(By.XPath("//*[@id='prc']/table/tbody/tr/td/table[3]/tbody/tr/td[2]")).Text.Replace("\r\n", "~");

                    //    DBconnection dbconn = new DBconnection();
                    //    dbconn.ExecuteQuery("update data_field_master set Data_Fields_Text='" + assess + "' where Id = '" + 692 + "'");
                    //    gc.insert_date(orderNumber, ParcelID, 692, assess1, 1, DateTime.Now);
                    //}
                    //catch
                    //{ }

                    AssessmentTime = DateTime.Now.ToString("HH:mm:ss");

                    //Tax Details
                    driver.Navigate().GoToUrl("https://www.mariontax.com/itm/PropertySearchAccount.aspx");
                    Thread.Sleep(4000);

                    driver.FindElement(By.Id("btnAgree")).Click();
                    Thread.Sleep(4000);

                    driver.FindElement(By.Id("_ctl0_ContentPlaceHolder1_txtAccount")).SendKeys(ParcelID);

                    gc.CreatePdf(orderNumber, ParcelID, "Tax Details", driver, "FL", "Marion");

                    driver.FindElement(By.Id("_ctl0_ContentPlaceHolder1_btnSearch")).SendKeys(Keys.Enter);
                    Thread.Sleep(4000);

                    gc.CreatePdf(orderNumber, ParcelID, "Tax Parcels Details", driver, "FL", "Marion");

                    driver.FindElement(By.Id("_ctl0_ContentPlaceHolder1_rptSummary__ctl0_lnkDetails1")).Click();
                    Thread.Sleep(4000);


                    //Tax Payment History
                    try
                    {
                        IWebElement         BreakdownTB = driver.FindElement(By.XPath("//*[@id='_ctl0_ContentPlaceHolder1_tblSummary']/tbody"));
                        IList <IWebElement> BreakdownTR = BreakdownTB.FindElements(By.TagName("tr"));
                        IList <IWebElement> BreakdownTD;

                        foreach (IWebElement Breakdown in BreakdownTR)
                        {
                            BreakdownTD = Breakdown.FindElements(By.TagName("td"));
                            if (BreakdownTD.Count != 0 && !Breakdown.Text.Contains("Year"))
                            {
                                Tax_Year    = BreakdownTD[0].Text;
                                Roll        = BreakdownTD[1].Text;
                                Acc_Num     = BreakdownTD[2].Text;
                                Sta         = BreakdownTD[3].Text;
                                Date_Paid   = BreakdownTD[4].Text;
                                Amount_Paid = BreakdownTD[5].Text;
                                Balnc_Due   = BreakdownTD[6].Text;

                                Payment_details = Tax_Year + "~" + Roll + "~" + Acc_Num + "~" + Sta + "~" + Date_Paid + "~" + Amount_Paid + "~" + Balnc_Due;
                                gc.insert_date(orderNumber, ParcelID, 695, Payment_details, 1, DateTime.Now);
                            }
                        }
                    }
                    catch
                    { }

                    //Tax Information
                    Acc_No = driver.FindElement(By.XPath("//*[@id='tbl1']/tbody/tr[2]/td[2]")).Text.Replace("               ", "");
                    Typ    = driver.FindElement(By.XPath("//*[@id='tbl1']/tbody/tr[2]/td[4]/table/tbody/tr/td[1]")).Text;
                    Add    = driver.FindElement(By.XPath("//*[@id='tbl1']/tbody/tr[3]/td[2]")).Text;

                    try
                    {
                        Deliquent = driver.FindElement(By.XPath("//*[@id='tbl3']/tbody/tr[4]/td")).Text;
                    }
                    catch
                    { }

                    try
                    {
                        Roll_Coment = driver.FindElement(By.XPath("//*[@id='_ctl0_ContentPlaceHolder1_tblSummary']/tbody/tr[3]/td[2]")).Text;
                    }
                    catch
                    { }
                    List <string> ParcelSearch = new List <string>();

                    try
                    {
                        IWebElement         ParcelTB = driver.FindElement(By.XPath("//*[@id='_ctl0_ContentPlaceHolder1_tblSummary']/tbody"));
                        IList <IWebElement> ParcelTR = ParcelTB.FindElements(By.TagName("tr"));
                        ParcelTR.Reverse();
                        int rows_count = ParcelTR.Count;

                        for (int row = 0; row < rows_count; row++)
                        {
                            if (row == rows_count - 1 || row == rows_count - 2 || row == rows_count - 3)
                            {
                                IList <IWebElement> Columns_row = ParcelTR[row].FindElements(By.TagName("td"));

                                int columns_count = Columns_row.Count;

                                for (int column = 0; column < columns_count; column++)
                                {
                                    if (column == columns_count - 2)
                                    {
                                        IWebElement ParcelBill_link = Columns_row[0].FindElement(By.TagName("a"));
                                        string      Parcelurl       = ParcelBill_link.GetAttribute("href");
                                        ParcelSearch.Add(Parcelurl);
                                    }
                                }
                            }
                        }
                    }
                    catch
                    { }

                    foreach (string Parcelbill in ParcelSearch)
                    {
                        driver.Navigate().GoToUrl(Parcelbill);
                        Thread.Sleep(3000);

                        Taxy = driver.FindElement(By.XPath("//*[@id='_ctl0_ContentPlaceHolder1_lblDetTaxYear']")).Text;

                        try
                        {
                            Pdes1 = driver.FindElement(By.XPath("//*[@id='Table2a']/tbody/tr[1]/td")).Text;
                            Pdes2 = driver.FindElement(By.XPath("//*[@id='Table2a']/tbody/tr[2]/td")).Text;
                            Pdes3 = driver.FindElement(By.XPath("//*[@id='Table2a']/tbody/tr[3]/td")).Text;
                            Pdes4 = driver.FindElement(By.XPath("//*[@id='Table2a']/tbody/tr[4]/td")).Text;

                            P_des = Pdes1 + " " + Pdes2 + " " + Pdes3 + " " + Pdes4;
                        }
                        catch
                        { }


                        try
                        {
                            OInfo1     = driver.FindElement(By.XPath("//*[@id='Table2b']/tbody/tr[1]/td")).Text;
                            M_Addr1    = driver.FindElement(By.XPath("//*[@id='Table2b']/tbody/tr[2]/td")).Text;
                            M_Addr2    = driver.FindElement(By.XPath("//*[@id='Table2b']/tbody/tr[3]/td")).Text;
                            Owner_Mail = OInfo1 + " & " + M_Addr1 + " " + M_Addr2;
                        }
                        catch
                        { }

                        try
                        {
                            OInfo1     = driver.FindElement(By.XPath("//*[@id='Table2b']/tbody/tr[1]/td")).Text;
                            OInfo2     = driver.FindElement(By.XPath("//*[@id='Table2b']/tbody/tr[2]/td")).Text;
                            M_Addr1    = driver.FindElement(By.XPath("//*[@id='Table2b']/tbody/tr[3]/td")).Text;
                            M_Addr2    = driver.FindElement(By.XPath("//*[@id='Table2b']/tbody/tr[4]/td")).Text;
                            Owner_Mail = OInfo1 + " " + OInfo2 + " & " + M_Addr1 + " " + M_Addr2;
                        }
                        catch
                        { }

                        try
                        {
                            IWebElement         tbmulti11 = driver.FindElement(By.XPath("//*[@id='Table2c']/tbody"));
                            IList <IWebElement> TRmulti11 = tbmulti11.FindElements(By.TagName("tr"));
                            IList <IWebElement> TDmulti11;

                            foreach (IWebElement row in TRmulti11)
                            {
                                TDmulti11 = row.FindElements(By.TagName("td"));
                                if (TDmulti11.Count != 0)
                                {
                                    Mkt = TDmulti11[0].Text;
                                    if (Mkt.Contains("MARKET VALU"))
                                    {
                                        Markt_Value = TDmulti11[0].Text.Replace(" ", "");
                                        Markt_Value = WebDriverTest.After(Markt_Value, "MARKETVALU");
                                    }
                                    Asst = TDmulti11[0].Text;
                                    if (Asst.Contains("ASSESSMENT"))
                                    {
                                        ASSESSMENT = TDmulti11[0].Text.Replace(" ", "");
                                        ASSESSMENT = WebDriverTest.After(ASSESSMENT, "ASSESSMENT");
                                    }
                                    Txb = TDmulti11[0].Text;
                                    if (Txb.Contains("TAXABLE"))
                                    {
                                        TAXABLE = TDmulti11[0].Text.Replace(" ", "");
                                        TAXABLE = WebDriverTest.After(TAXABLE, "TAXABLE");
                                    }
                                    Ext = TDmulti11[0].Text;
                                    if (Ext.Contains("EXCD01"))
                                    {
                                        EXC = TDmulti11[0].Text.Replace(" ", "");
                                        EXC = WebDriverTest.After(EXC, "EXCD01");
                                    }
                                    Ext1 = TDmulti11[0].Text;
                                    if (Ext1.Contains("EXCD38"))
                                    {
                                        EXC1 = TDmulti11[0].Text.Replace(" ", "");
                                        EXC1 = WebDriverTest.After(EXC1, "EXCD38");
                                    }
                                    Ext2 = TDmulti11[0].Text;
                                    if (Ext2.Contains("EXCD02"))
                                    {
                                        EXC2 = TDmulti11[0].Text.Replace(" ", "");
                                        EXC2 = WebDriverTest.After(EXC2, "EXCD02");
                                    }
                                    Count_Asst = TDmulti11[0].Text;
                                    if (Count_Asst.Contains("COUNTY ASMT"))
                                    {
                                        County_ASMT = TDmulti11[0].Text.Replace(" ", "");
                                        County_ASMT = WebDriverTest.After(County_ASMT, "COUNTYASMT");
                                    }
                                    Count_txbl = TDmulti11[0].Text;
                                    if (Count_txbl.Contains("COUNTY TXBL"))
                                    {
                                        County_TXBL = TDmulti11[0].Text.Replace(" ", "");
                                        County_TXBL = WebDriverTest.After(County_TXBL, "COUNTYTXBL");
                                    }
                                    Tax_Asst = TDmulti11[0].Text;
                                    if (Tax_Asst.Contains("SCHOOL ASMT"))
                                    {
                                        Tax_ASMT = TDmulti11[0].Text.Replace(" ", "");
                                        Tax_ASMT = WebDriverTest.After(Tax_ASMT, "SCHOOLASMT");
                                    }
                                    Tax_txbl = TDmulti11[0].Text;
                                    if (Tax_txbl.Contains("SCHOOL TXBL"))
                                    {
                                        Tax_TXBL = TDmulti11[0].Text.Replace(" ", "");
                                        Tax_TXBL = WebDriverTest.After(Tax_TXBL, "SCHOOLTXBL");
                                    }
                                }
                            }

                            IWebElement         tbmulti1 = driver.FindElement(By.XPath("//*[@id='Table2d']/tbody"));
                            IList <IWebElement> TRmulti1 = tbmulti1.FindElements(By.TagName("tr"));
                            IList <IWebElement> TDmulti1;

                            foreach (IWebElement row in TRmulti1)
                            {
                                TDmulti1 = row.FindElements(By.TagName("td"));
                                if (TDmulti1.Count != 0)
                                {
                                    txes = TDmulti1[0].Text;
                                    if (txes.Contains("TAXES"))
                                    {
                                        TAXES = TDmulti1[0].Text.Replace(" ", "");
                                        TAXES = WebDriverTest.After(TAXES, "TAXES");
                                    }

                                    sptxs = TDmulti1[0].Text;
                                    if (sptxs.Contains("SP. ASMT"))
                                    {
                                        SP_ASMT = TDmulti1[0].Text.Replace(" ", "");
                                        SP_ASMT = WebDriverTest.After(SP_ASMT, "SP.ASMT");
                                    }

                                    intt = TDmulti1[0].Text;
                                    if (intt.Contains("INT."))
                                    {
                                        INT = TDmulti1[0].Text.Replace(" ", "");
                                        INT = WebDriverTest.After(INT, "INT.");
                                    }

                                    Salet = TDmulti1[0].Text;
                                    if (Salet.Contains("SALE 5%"))
                                    {
                                        SALE = TDmulti1[0].Text.Replace(" ", "");
                                        SALE = WebDriverTest.After(SALE, "SALE5%");
                                    }

                                    Advt = TDmulti1[0].Text;
                                    if (Advt.Contains("ADV. FEE"))
                                    {
                                        ADV = TDmulti1[0].Text.Replace(" ", "");
                                        ADV = WebDriverTest.After(ADV, "ADV.FEE");
                                    }
                                }
                            }

                            Tax_Info = Acc_No + "~" + Typ + "~" + Add + "~" + Taxy + "~" + P_des + "~" + Owner_Mail + "~" + Markt_Value + "~" + ASSESSMENT + "~" + TAXABLE + "~" + EXC + "~" + EXC1 + "~" + EXC2 + "~" + TAXES + "~" + SP_ASMT + "~" + INT + "~" + SALE + "~" + ADV + "~" + County_ASMT + "~" + County_TXBL + "~" + Tax_ASMT + "~" + Tax_TXBL;
                            gc.insert_date(orderNumber, ParcelID, 697, Tax_Info, 1, DateTime.Now);
                            Markt_Value = ""; ASSESSMENT = ""; TAXABLE = ""; EXC = ""; EXC1 = ""; EXC2 = ""; TAXES = ""; SP_ASMT = ""; INT = ""; SALE = ""; ADV = ""; County_ASMT = ""; County_TXBL = ""; Tax_ASMT = ""; Tax_TXBL = "";
                        }
                        catch
                        { }
                        gc.CreatePdf(orderNumber, ParcelID, "Tax Payment Details" + Taxy, driver, "FL", "Marion");
                        Thread.Sleep(2000);

                        //Tax Receipt
                        try
                        {
                            Receipt = driver.FindElement(By.XPath("//*[@id='tbl5']/tbody/tr[4]/td")).Text.Replace(" ", "");

                            Commonreceipt = Receipt;

                            if (Commonreceipt.Length == 58)
                            {
                                A = Receipt.Substring(0, 10);
                                B = Receipt.Substring(10, 19);
                                C = Receipt.Substring(29, 9);
                                D = Receipt.Substring(38, 7);
                                E = Receipt.Substring(45, 4);
                                F = Receipt.Substring(49, 9);

                                Receipt_Details5 = A + "~" + B + "~" + "~" + C + "~" + D + "~" + E + "~" + F;
                                gc.insert_date(orderNumber, ParcelID, 698, Receipt_Details5, 1, DateTime.Now);
                            }

                            if (Commonreceipt.Length == 42)
                            {
                                A = Receipt.Substring(0, 10);
                                B = Receipt.Substring(10, 19);
                                C = Receipt.Substring(29, 4);
                                D = Receipt.Substring(33, 9);

                                Receipt_Details1 = A + "~" + B + "~" + C + "~" + D + "~" + "" + "~" + "" + "~" + "";
                                gc.insert_date(orderNumber, ParcelID, 698, Receipt_Details1, 1, DateTime.Now);
                            }

                            if (Commonreceipt.Length == 62)
                            {
                                A = Receipt.Substring(0, 10);
                                B = Receipt.Substring(10, 19);
                                C = Receipt.Substring(29, 4);
                                D = Receipt.Substring(33, 9);
                                E = Receipt.Substring(42, 7);
                                F = Receipt.Substring(49, 4);
                                G = Receipt.Substring(53, 9);

                                Receipt_Details2 = A + "~" + B + "~" + C + "~" + D + "~" + E + "~" + F + "~" + G;
                                gc.insert_date(orderNumber, ParcelID, 698, Receipt_Details2, 1, DateTime.Now);
                            }

                            if (Commonreceipt.Length == 61)
                            {
                                A = Receipt.Substring(0, 10);
                                B = Receipt.Substring(10, 19);
                                C = Receipt.Substring(29, 4);
                                D = Receipt.Substring(33, 10);
                                E = Receipt.Substring(43, 6);
                                F = Receipt.Substring(49, 5);
                                G = Receipt.Substring(54, 7);

                                Receipt_Details3 = A + "~" + B + "~" + C + "~" + D + "~" + E + "~" + F + "~" + G;
                                gc.insert_date(orderNumber, ParcelID, 698, Receipt_Details3, 1, DateTime.Now);
                            }

                            if (Commonreceipt.Length == 60)
                            {
                                A = Receipt.Substring(0, 10);
                                B = Receipt.Substring(10, 19);
                                C = Receipt.Substring(29, 4);
                                D = Receipt.Substring(33, 9);
                                E = Receipt.Substring(42, 7);
                                F = Receipt.Substring(49, 4);
                                G = Receipt.Substring(53, 7);

                                Receipt_Details4 = A + "~" + B + "~" + C + "~" + D + "~" + E + "~" + F + "~" + G;
                                gc.insert_date(orderNumber, ParcelID, 698, Receipt_Details4, 1, DateTime.Now);
                            }

                            if (Commonreceipt.Length == 56)
                            {
                                A = Receipt.Substring(0, 10);
                                B = Receipt.Substring(10, 19);
                                C = Receipt.Substring(29, 9);
                                D = Receipt.Substring(38, 7);
                                E = Receipt.Substring(45, 4);
                                F = Receipt.Substring(49, 7);

                                Receipt_Details4 = A + "~" + B + "~" + "" + "~" + C + "~" + D + "~" + E + "~" + F;
                                gc.insert_date(orderNumber, ParcelID, 698, Receipt_Details4, 1, DateTime.Now);
                            }
                            if (Commonreceipt.Length == 64)
                            {
                                A = Receipt.Substring(0, 10);
                                B = Receipt.Substring(10, 19);
                                C = Receipt.Substring(29, 4);
                                D = Receipt.Substring(33, 9);
                                E = Receipt.Substring(42, 8);
                                F = Receipt.Substring(50, 4);
                                G = Receipt.Substring(54, 10);

                                Receipt_Details9 = A + "~" + B + "~" + C + "~" + D + "~" + E + "~" + F + "~" + G;
                                gc.insert_date(orderNumber, ParcelID, 698, Receipt_Details9, 1, DateTime.Now);
                            }
                        }
                        catch
                        { }

                        //driver.Navigate().Back();
                        //Thread.Sleep(2000);
                    }

                    driver.FindElement(By.Id("_ctl0_ContentPlaceHolder1_lnkAcctBill2")).Click();
                    Thread.Sleep(3000);

                    driver.SwitchTo().Window(driver.WindowHandles.Last());
                    Thread.Sleep(4000);

                    //Ad-Valorem & Non-Ad Valorem
                    IWebElement         AdValoremTB = driver.FindElement(By.XPath("//*[@id='Table3']/tbody"));
                    IList <IWebElement> AdValoremTR = AdValoremTB.FindElements(By.TagName("tr"));
                    IList <IWebElement> AdValoremTD;

                    foreach (IWebElement AdValorem in AdValoremTR)
                    {
                        AdValoremTD = AdValorem.FindElements(By.TagName("td"));
                        if (AdValoremTD.Count != 0 && !AdValorem.Text.Contains("TAXING AUTHORITY") && AdValoremTD[0].Text != "" && !AdValorem.Text.Contains("*** PAID *** PAID *** PAID ***") && !AdValorem.Text.Contains("PERIOD"))
                        {
                            //if (AdValorem.Text.Contains("COMBINED TAXES & ASSESSMENTS TOTAL:"))
                            //{
                            //    break;
                            //}
                            string Output = AdValoremTD[0].Text;
                            Output = Regex.Replace(Output, @"\s+", " ").TrimStart();
                            Output = Output.Replace(" ", "~");
                            string[]      rowarrayname1 = Output.Split('~');
                            List <string> listname      = new List <string>();
                            listname.AddRange(rowarrayname1);
                            int    count = listname.Count();
                            string name = "", millege = "", assessed = "", exemptions = "", taxable = "", taxes = "";
                            int    k = 0;
                            if (count == 2 && listname[0].Any(Char.IsDigit))
                            {
                                Advalorem_details1 = "Total Millege" + "~" + listname[0] + "~" + "" + "~" + "" + "~" + "Total Ad Valorem Taxes" + "~" + listname[1];
                                gc.CreatePdf(orderNumber, ParcelID, "Ad-Valorem & Non-Ad Valorem Taxs Details" + Taxy, driver, "FL", "Marion");
                                gc.insert_date(orderNumber, ParcelID, 700, Advalorem_details1, 1, DateTime.Now);
                            }
                            else
                            {
                                for (int i = 0; i < count; i++)
                                {
                                    if (!listname[i].Any(Char.IsDigit))
                                    {
                                        name = name + " " + listname[i];
                                    }
                                    else
                                    {
                                        if (listname[i].Any(Char.IsDigit) && (k == 0))
                                        {
                                            millege = listname[i];
                                        }
                                        if (listname[i].Any(Char.IsDigit) && (k == 1))
                                        {
                                            assessed = listname[i];
                                        }
                                        if (listname[i].Any(Char.IsDigit) && (k == 2))
                                        {
                                            exemptions = listname[i];
                                        }
                                        if (listname[i].Any(Char.IsDigit) && (k == 3))
                                        {
                                            taxable = listname[i];
                                        }
                                        if (listname[i].Any(Char.IsDigit) && (k == 4))
                                        {
                                            taxes = listname[i];
                                        }
                                        k++;
                                    }
                                }
                            }
                            Advalorem_details = name + "~" + millege + "~" + assessed + "~" + exemptions + "~" + taxable + "~" + taxes;
                            gc.CreatePdf(orderNumber, ParcelID, "Ad-Valorem & Non-Ad Valorem Taxs Details" + Taxy, driver, "FL", "Marion");
                            gc.insert_date(orderNumber, ParcelID, 700, Advalorem_details, 1, DateTime.Now);
                        }
                    }

                    //Taxing Authority
                    driver.Navigate().GoToUrl("https://www.mariontax.com/itm.asp");
                    Thread.Sleep(2000);
                    Deliquent_Comments = "";
                    CER_Comments       = "";
                    try
                    {
                        Taxing_Authority = driver.FindElement(By.XPath("//*[@id='ss-block-container-1']/div/address[2]")).Text.Replace("\r\n", " ");
                    }
                    catch { }

                    if (Deliquent == "DELINQUENT TAXES DUE          ")
                    {
                        Deliquent_Comments = "For prior tax amount due, you must call the tax Collector's Office.";
                    }

                    if (Roll_Coment == "CER")
                    {
                        CER_Comments = "Tax Sale in property. Need to contact Tax Collector";
                    }
                    Taxauthority_Details = Taxing_Authority + "~" + Deliquent_Comments + "~" + CER_Comments;
                    gc.CreatePdf(orderNumber, ParcelID, "Tax Authority", driver, "FL", "Marion");
                    gc.insert_date(orderNumber, ParcelID, 704, Taxauthority_Details, 1, DateTime.Now);

                    TaxTime = DateTime.Now.ToString("HH:mm:ss");

                    LastEndTime = DateTime.Now.ToString("HH:mm:ss");
                    gc.insert_TakenTime(orderNumber, "FL", "Marion", StartTime, AssessmentTime, TaxTime, CitytaxTime, LastEndTime);

                    driver.Quit();
                    gc.mergpdf(orderNumber, "FL", "Marion");
                    return("Data Inserted Successfully");
                }
                catch (Exception ex)
                {
                    driver.Quit();
                    GlobalClass.LogError(ex, orderNumber);
                    throw;
                }
            }
        }
Beispiel #7
0
        public string FTP_YorkSC(string streetNo, string streetName, string direction, string streetType, string accountNo, string parcelNumber, string ownerName, string searchType, string orderNumber)
        {
            GlobalClass.global_orderNo             = orderNumber;
            HttpContext.Current.Session["orderNo"] = orderNumber;
            GlobalClass.global_parcelNo            = parcelNumber;
            IJavaScriptExecutor js = driver as IJavaScriptExecutor;
            string strmulti = "", Taxy = "";
            string StartTime = "", AssessmentTime = "", TaxTime = "", CitytaxTime = "", LastEndTime = "", accountnumber = "";
            var    driverService = PhantomJSDriverService.CreateDefaultService();

            driverService.HideCommandPromptWindow = true;
            //driver = new PhantomJSDriver();
            //driver = new ChromeDriver();
            using (driver = new PhantomJSDriver()) //ChromeDriver
            {
                try
                {
                    StartTime = DateTime.Now.ToString("HH:mm:ss");
                    driver.Navigate().GoToUrl("https://qpublic.schneidercorp.com/Application.aspx?App=YorkCountySC&Layer=Parcels&PageType=Search");
                    try
                    {
                        driver.FindElement(By.XPath("//*[@id='appBody']/div[4]/div/div/div[3]/a[1]")).SendKeys(Keys.Enter);
                        Thread.Sleep(2000);
                    }
                    catch { }
                    try
                    {
                        driver.FindElement(By.XPath("//*[@id='appBody']/div[5]/div/div/div[3]/a")).SendKeys(Keys.Enter);
                        Thread.Sleep(2000);
                    }
                    catch { }
                    //Thread.Sleep(3000);
                    if (searchType == "titleflex")
                    {
                        string address = streetNo + " " + direction + " " + streetName + " " + streetType + " " + accountNo;
                        gc.TitleFlexSearch(orderNumber, "", "", address.Trim(), "SC", "York");
                        if (HttpContext.Current.Session["TitleFlex_Search"] != null && HttpContext.Current.Session["TitleFlex_Search"].Equals("Yes"))
                        {
                            driver.Quit();
                            return("MultiParcel");
                        }
                        else if (HttpContext.Current.Session["titleparcel"].ToString() == "")
                        {
                            HttpContext.Current.Session["Nodata_YorkSC"] = "Yes";
                            driver.Quit();
                            return("No Data Found");
                        }
                        parcelNumber = HttpContext.Current.Session["titleparcel"].ToString();
                        searchType   = "parcel";
                    }
                    if (searchType == "address")
                    {
                        driver.FindElement(By.Id("ctlBodyPane_ctl01_ctl01_txtAddress")).SendKeys(streetNo + " " + streetName);
                        gc.CreatePdf_WOP(orderNumber, "Address Search Before", driver, "SC", "York");
                        driver.FindElement(By.Id("ctlBodyPane_ctl01_ctl01_btnSearch")).SendKeys(Keys.Enter);
                        Thread.Sleep(2000);
                        gc.CreatePdf_WOP(orderNumber, "Address Search After", driver, "SC", "York");
                        try
                        {
                            strmulti = GlobalClass.Before(driver.FindElement(By.Id("ctlBodyPane_ctl00_txtResultCount")).Text.Trim(), " Results");
                            if (Convert.ToInt32(strmulti) > 25)
                            {
                                HttpContext.Current.Session["multiParcel_YorkSC_Maximum"] = "Maximum";
                                return("Maximum");
                            }
                            IWebElement         Imultitable = driver.FindElement(By.XPath("//*[@id='ctlBodyPane_ctl00_ctl01_gvwParcelResults']/tbody"));
                            IList <IWebElement> ImutiRow    = Imultitable.FindElements(By.TagName("tr"));
                            IList <IWebElement> ImultiTD;
                            foreach (IWebElement multi in ImutiRow)
                            {
                                ImultiTD = multi.FindElements(By.TagName("td"));
                                if (ImultiTD.Count != 0 && !multi.Text.Contains("Address"))
                                {
                                    string strmultiDetails = ImultiTD[2].Text + "~" + ImultiTD[3].Text;
                                    gc.insert_date(orderNumber, ImultiTD[1].Text, 1541, strmultiDetails, 1, DateTime.Now);
                                }
                            }
                            HttpContext.Current.Session["multiParcel_YorkSC"] = "Yes";
                            driver.Quit();
                            return("MultiParcel");
                        }
                        catch { }
                        try
                        {
                            //No Data Found
                            string nodata = driver.FindElement(By.Id("ctlBodyPane_noDataList_pnlNoResults")).Text;
                            if (nodata.Contains("No results match your search criteria."))
                            {
                                HttpContext.Current.Session["Nodata_YorkSC"] = "Yes";
                                driver.Quit();
                                return("No Data Found");
                            }
                        }
                        catch { }
                    }
                    if (searchType == "parcel")
                    {
                        driver.FindElement(By.Id("ctlBodyPane_ctl02_ctl01_txtParcelID")).SendKeys(parcelNumber);
                        gc.CreatePdf(orderNumber, parcelNumber, "Parcel Before Search", driver, "SC", "York");
                        driver.FindElement(By.Id("ctlBodyPane_ctl02_ctl01_btnSearch")).SendKeys(Keys.Enter);
                        Thread.Sleep(2000);
                        gc.CreatePdf(orderNumber, parcelNumber, "Parcel Aftere Pdf", driver, "SC", "York");
                        try
                        {
                            //No Data Found
                            string nodata = driver.FindElement(By.Id("ctlBodyPane_noDataList_pnlNoResults")).Text;
                            if (nodata.Contains("No results match your search criteria."))
                            {
                                HttpContext.Current.Session["Nodata_YorkSC"] = "Yes";
                                driver.Quit();
                                return("No Data Found");
                            }
                        }
                        catch { }
                    }

                    else if (searchType == "ownername")
                    {
                        driver.FindElement(By.Id("ctlBodyPane_ctl00_ctl01_txtName")).SendKeys(ownerName);
                        gc.CreatePdf_WOP(orderNumber, "OwnerName Search Before", driver, "SC", "York");
                        driver.FindElement(By.Id("ctlBodyPane_ctl00_ctl01_btnSearch")).SendKeys(Keys.Enter);
                        Thread.Sleep(2000);
                        gc.CreatePdf_WOP(orderNumber, "OwnerName Search After", driver, "SC", "York");

                        try
                        {
                            strmulti = GlobalClass.Before(driver.FindElement(By.Id("ctlBodyPane_ctl00_txtResultCount")).Text.Trim(), " Results");
                            if (Convert.ToInt32(strmulti) > 25)
                            {
                                HttpContext.Current.Session["multiParcel_Paulding_Maximum"] = "Maximum";
                                return("Maximum");
                            }
                            IWebElement         Imultitable = driver.FindElement(By.XPath("//*[@id='ctlBodyPane_ctl00_ctl01_gvwParcelResults']/tbody"));
                            IList <IWebElement> ImutiRow    = Imultitable.FindElements(By.TagName("tr"));
                            IList <IWebElement> ImultiTD;
                            foreach (IWebElement multi in ImutiRow)
                            {
                                ImultiTD = multi.FindElements(By.TagName("td"));
                                if (ImultiTD.Count != 0 && !multi.Text.Contains("Address"))
                                {
                                    string strmultiDetails = ImultiTD[2].Text + "~" + ImultiTD[3].Text;
                                    gc.insert_date(orderNumber, ImultiTD[1].Text, 1541, strmultiDetails, 1, DateTime.Now);
                                }
                            }
                            HttpContext.Current.Session["multiParcel_YorkSC"] = "Yes";
                            driver.Quit();
                            return("MultiParcel");
                        }
                        catch { }
                        try
                        {
                            //No Data Found
                            string nodata = driver.FindElement(By.Id("ctlBodyPane_noDataList_pnlNoResults")).Text;
                            if (nodata.Contains("No results match your search criteria."))
                            {
                                HttpContext.Current.Session["Nodata_YorkSC"] = "Yes";
                                driver.Quit();
                                return("No Data Found");
                            }
                        }
                        catch { }
                    }
                    //Property Details

                    string Owner = "", ParcelNumber = "", Propertyaddress = "", Mailingaddress = "", LegalDescription = "", Classcode = "";
                    try
                    {
                        string   bulktext1 = driver.FindElement(By.XPath("//*[@id='ctlBodyPane_ctl01_mSection']/div")).Text.Trim();
                        string[] Propdata1 = bulktext1.Split('\r');

                        if (Propdata1.Count() == 4)
                        {
                            Owner          = Propdata1[0].Replace("\r\n", "").Trim() + "&" + Propdata1[1].Replace("\r\n", "").Trim();
                            Mailingaddress = Propdata1[2].Replace("\r\n", "").Trim() + Propdata1[3].Replace("\r\n", "").Trim();
                        }
                        if (Propdata1.Count() == 3)
                        {
                            Owner          = Propdata1[0].Replace("\r\n", "").Trim();
                            Mailingaddress = Propdata1[1].Replace("\r\n", "").Trim() + Propdata1[2].Replace("\r\n", "").Trim();
                        }
                        if (Propdata1.Count() == 2)
                        {
                            Mailingaddress = Propdata1[1].Replace("\r\n", "").Trim() + Propdata1[2].Replace("\r\n", "").Trim();
                        }
                    }
                    catch { }
                    ParcelNumber = driver.FindElement(By.Id("ctlBodyPane_ctl00_ctl01_lblParcelNumber")).Text.Trim();
                    gc.CreatePdf(orderNumber, ParcelNumber, "Property Details and Assessment Details Pdf", driver, "SC", "York");
                    Propertyaddress  = driver.FindElement(By.Id("ctlBodyPane_ctl00_ctl01_lblLocationAddr")).Text.Trim();
                    LegalDescription = driver.FindElement(By.Id("ctlBodyPane_ctl00_ctl01_lblDescription")).Text.Trim();
                    Classcode        = driver.FindElement(By.Id("ctlBodyPane_ctl00_ctl01_lblClass")).Text.Trim();
                    string PropertyDetails = Owner.Trim() + "~" + Propertyaddress.Trim() + "~" + Mailingaddress.Trim() + "~" + LegalDescription.Trim() + "~" + Classcode.Trim();
                    gc.insert_date(orderNumber, ParcelNumber, 1539, PropertyDetails, 1, DateTime.Now);
                    //Assessment Details
                    string AssessmentYear = "";
                    try
                    {
                        AssessmentYear = driver.FindElement(By.XPath("//*[@id='ctlBodyPane_ctl11_ctl01_grdValuation']/thead/tr/th[3]")).Text.Trim();
                    }
                    catch { }
                    // gc.CreatePdf(orderNumber, ParcelNumber, "Assessment Details ", driver, "GA", "Paulding");
                    try
                    {
                        string              AssessmentTitle = "", AssessmentValue = "";
                        IWebElement         tbcurasses12 = driver.FindElement(By.Id("ctlBodyPane_ctl02_mSection"));
                        IList <IWebElement> TRcurasses2  = tbcurasses12.FindElements(By.TagName("tr"));
                        IList <IWebElement> TDmulti12;
                        foreach (IWebElement row in TRcurasses2)
                        {
                            TDmulti12 = row.FindElements(By.TagName("td"));
                            if (TDmulti12.Count != 0 && !row.Text.Contains("Value Information"))
                            {
                                AssessmentTitle += TDmulti12[0].Text + "~";
                                AssessmentValue += TDmulti12[1].Text + "~";
                            }
                        }
                        db.ExecuteQuery("update data_field_master set Data_Fields_Text='" + "Year" + "~" + AssessmentTitle.Remove(AssessmentTitle.Length - 1, 1) + "' where Id = '" + 1540 + "'");
                        gc.insert_date(orderNumber, ParcelNumber, 1540, AssessmentYear + "~" + AssessmentValue.Remove(AssessmentValue.Length - 1, 1), 1, DateTime.Now);
                    }
                    catch { }
                    //Tax Authority
                    string Taxauthority = "", Taxauthority1 = "";
                    try
                    {
                        driver.Navigate().GoToUrl("https://www.yorkcountygov.com/Directory.aspx?did=28");
                        Taxauthority1 = driver.FindElement(By.Id("CityDirectoryLeftMargin")).Text.Trim();
                        Taxauthority  = gc.Between(Taxauthority1.Replace("\r\n", " "), "Mailing Address:", "Fax:").Trim();
                        gc.CreatePdf(orderNumber, ParcelNumber, "Tax Authority Details", driver, "SC", "York");
                    }
                    catch { }
                    //Tax Information Details

                    driver.Navigate().GoToUrl("https://onlinetaxes.yorkcountygov.com/taxes#/");
                    Thread.Sleep(2000);
                    gc.CreatePdf(orderNumber, ParcelNumber, "Tax main page", driver, "SC", "York");
                    try
                    {//*[@id="cc5f8c90dc-b4cb-431b-90ee-10648f8df655"]/div/div/p[3]/button[1]
                        //*[@id="cc5f8c90dc-b4cb-431b-90ee-10648f8df655"]/div/div/p[3]/button[1]
                        driver.FindElement(By.XPath("//*[@id='cc5f8c90dc-b4cb-431b-90ee-10648f8df655']/div/div/p[3]/button[1]")).SendKeys(Keys.Enter);
                        Thread.Sleep(2000);
                        gc.CreatePdf(orderNumber, ParcelNumber, "Tax accept click", driver, "SC", "York");
                    }
                    catch
                    { }
                    try
                    {
                        driver.FindElement(By.XPath("/html/body/div[1]/div/div/div[3]/button[2]")).SendKeys(Keys.Enter);
                        Thread.Sleep(2000);
                    }
                    catch { }
                    ////*[@id="searchBox"]
                    //try {
                    //driver.Navigate().GoToUrl("https://onlinetaxes.yorkcountygov.com/taxes#/WildfireSearch");
                    //Thread.Sleep(3000);
                    //}catch { }
                    driver.FindElement(By.Id("searchBox")).SendKeys(ParcelNumber);
                    //driver.FindElement(By.XPath("//*[@id='searchBox']")).SendKeys(ParcelNumber);
                    Thread.Sleep(4000);
                    try
                    {
                        //*[@id="searchForm"]/div[1]/div/span/button
                        driver.FindElement(By.XPath("//*[@id='searchForm']/div[1]/div/span/button")).SendKeys(Keys.Enter);
                    }
                    catch { }
                    Thread.Sleep(2000);
                    gc.CreatePdf(orderNumber, ParcelNumber, "Payment Details Pdf", driver, "SC", "York");
                    //Tax History Details Table
                    string TaxHistorydetails = "", TaxOwnerName = "", TaxYear = "", Receipt = "", Descripton = "", Type = "", Status = "", PaidDate = "";

                    try
                    {
                        IWebElement         PaymentTB = driver.FindElement(By.XPath("//*[@id='cc5f8c90dc-b4cb-431b-90ee-10648f8df655']/div/div/div[4]/div[2]/table")); //Working on div[3]/div[2] Previously
                        IList <IWebElement> PaymentTR = PaymentTB.FindElements(By.TagName("tr"));
                        IList <IWebElement> PaymentTD;

                        foreach (IWebElement Payment in PaymentTR)
                        {
                            PaymentTD = Payment.FindElements(By.TagName("td"));
                            if (PaymentTD.Count != 0 && !Payment.Text.Contains("Owner Name"))
                            {
                                TaxOwnerName = PaymentTD[0].Text;
                                TaxYear      = PaymentTD[1].Text;
                                Receipt      = PaymentTD[2].Text;
                                Descripton   = PaymentTD[3].Text;
                                Type         = PaymentTD[4].Text;
                                Status       = PaymentTD[5].Text;
                                PaidDate     = PaymentTD[6].Text;

                                TaxHistorydetails = TaxOwnerName + "~" + TaxYear + "~" + Receipt + "~" + Descripton + "~" + Type + "~" + Status + "~" + PaidDate + "~" + Taxauthority;
                                gc.insert_date(orderNumber, ParcelNumber, 1547, TaxHistorydetails, 1, DateTime.Now);
                            }
                        }
                    }
                    catch { }

                    //Tax Information Details//
                    //***********************=========***********************//

                    string name = "", Taxyear = "", bill_no = "", amount = "", Del_details = "", delinaccount = "", delinparcelid = "";
                    //int p = 0;
                    for (int i = 1; i < 4; i++)
                    {
                        try
                        {
                            IWebElement Receipttable1 = driver.FindElement(By.XPath("//*[@id='cc5f8c90dc-b4cb-431b-90ee-10648f8df655']/div/div/div[4]/div[2]/table/tbody/tr[" + i + "]/td[9]/button")); //Working on div[3]/div[2] Previously
                            Receipttable1.Click();
                            Thread.Sleep(5000);
                            ////View Delinquent Details
                            try
                            {
                                IWebElement         DeliquentTB = driver.FindElement(By.XPath("/html/body/div[1]/div/div/div[1]/table/tbody"));
                                IList <IWebElement> DeliquentTR = DeliquentTB.FindElements(By.TagName("tr"));
                                IList <IWebElement> DeliquentTD;

                                foreach (IWebElement Deliquent in DeliquentTR)
                                {
                                    DeliquentTD = Deliquent.FindElements(By.TagName("td"));
                                    if (DeliquentTD.Count != 0)
                                    {
                                        name    = DeliquentTD[0].Text.Trim();
                                        bill_no = DeliquentTD[1].Text.Trim();
                                        Taxyear = DeliquentTD[2].Text.Trim();
                                        amount  = DeliquentTD[6].Text.Trim();

                                        Del_details = name + "~" + Taxyear + "~" + bill_no + "~" + amount;
                                        gc.CreatePdf(orderNumber, ParcelNumber, "Deliquent Details" + i, driver, "SC", "York");
                                        gc.insert_date(orderNumber, ParcelNumber, 1443, Del_details, 1, DateTime.Now);
                                        name = ""; Taxyear = ""; bill_no = ""; amount = ""; delinaccount = ""; delinparcelid = "";
                                    }
                                }
                            }
                            catch
                            { }
                            try
                            {
                                IWebElement         DeliquentfootTB = driver.FindElement(By.XPath("/html/body/div[1]/div/div/div[1]/table/tfoot"));
                                IList <IWebElement> DeliquentfootTR = DeliquentfootTB.FindElements(By.TagName("tr"));
                                IList <IWebElement> DeliquentfootTD;

                                foreach (IWebElement Deliquentfoot in DeliquentfootTR)
                                {
                                    DeliquentfootTD = Deliquentfoot.FindElements(By.TagName("th"));
                                    if (DeliquentfootTD.Count != 0)
                                    {
                                        string bill_no1 = DeliquentfootTD[0].Text;
                                        string amount1  = DeliquentfootTD[2].Text;

                                        string Del_details1 = "" + "~" + "" + "~" + bill_no1 + "~" + amount1;
                                        gc.insert_date(orderNumber, ParcelNumber, 1443, Del_details1, 1, DateTime.Now);
                                    }
                                }
                                gc.CreatePdf(orderNumber, ParcelNumber, "Delinquent" + i, driver, "SC", "York");
                            }
                            catch
                            { }

                            try
                            {
                                driver.FindElement(By.XPath("/html/body/div[1]/div/div/div[2]/button[2]")).Click();
                                Thread.Sleep(2000);
                            }
                            catch
                            { }
                            string Parcelid = "", Taxinfownername1 = "", PayStatus = "", Paypaiddate = "", Effectivedate = "", Paidamount = "", BillType = "", BillTaxYearinfo = "", Billreceipt = "", Duedate = "", Basetaxamt = "", Penalty = "", Costs = "", Totaldue = "", Credit = "", Fees = "";
                            //Tax Information details1
                            IWebElement         TaxTB2 = driver.FindElement(By.XPath("//*[@id='cc5f8c90dc-b4cb-431b-90ee-10648f8df655']/div/div/div/div/div[1]/div[2]"));
                            IList <IWebElement> TaxTR2 = TaxTB2.FindElements(By.TagName("div"));
                            IList <IWebElement> TaxTD2;
                            foreach (IWebElement Tax2 in TaxTR2)
                            {
                                if (Tax2.Text.Contains("Property Information"))
                                {
                                    Parcelid = gc.Between(Tax2.Text, "Parcel Number", "District").Trim();
                                }
                                if (Tax2.Text.Contains("Bill Information"))
                                {
                                    BillType        = gc.Between(Tax2.Text, "Record Type", "Tax Year").Trim();
                                    BillTaxYearinfo = gc.Between(Tax2.Text, "Tax Year", "Receipt").Trim();
                                    Billreceipt     = gc.Between(Tax2.Text, "Receipt", "Due Date").Trim();
                                    Duedate         = GlobalClass.After(Tax2.Text, "Due Date").Trim();
                                }
                            }
                            //Tax information details
                            //Owner information and Payment Information
                            IWebElement         TaxTB1 = driver.FindElement(By.XPath("//*[@id='cc5f8c90dc-b4cb-431b-90ee-10648f8df655']/div/div/div/div/div[1]/div[1]"));
                            IList <IWebElement> TaxTR1 = TaxTB1.FindElements(By.TagName("div"));
                            IList <IWebElement> TaxTD;
                            foreach (IWebElement Tax1 in TaxTR1)
                            {
                                if (Tax1.Text.Contains("Owner Information"))
                                {
                                    Taxinfownername1 = GlobalClass.After(Tax1.Text, "Owner Information").Trim();
                                    string[] Taxinfownernamesplit = Taxinfownername1.Split('\r');
                                    TaxOwnerName = Taxinfownernamesplit[0] + " " + Taxinfownernamesplit[2].Trim();
                                }
                                if (Tax1.Text.Contains("Payment Information"))
                                {
                                    PayStatus     = gc.Between(Tax1.Text, "Status", "Last Payment Date").Trim();
                                    Paypaiddate   = gc.Between(Tax1.Text, "Last Payment Date", "Postmark Date").Trim();
                                    Effectivedate = gc.Between(Tax1.Text, "Postmark Date", "Amount Paid").Trim();
                                    Paidamount    = GlobalClass.After(Tax1.Text, "Amount Paid").Trim();
                                }
                                //}
                            }
                            string Taxinformationdetails2 = TaxOwnerName.Trim() + "~" + PayStatus.Trim() + "~" + Paypaiddate.Trim() + "~" + Effectivedate.Trim() + "~" + Paidamount.Trim() + "~" + BillType.Trim() + "~" + BillTaxYearinfo.Trim() + "~" + Billreceipt.Trim() + "~" + Duedate.Trim();
                            gc.insert_date(orderNumber, Parcelid, 1545, Taxinformationdetails2, 1, DateTime.Now);
                            gc.CreatePdf(orderNumber, ParcelNumber, "Payment Details Pdf" + BillTaxYearinfo, driver, "SC", "York");
                            //Property Infor and Bill Infor and Taxes
                            string              Basetax = "", Credit1 = "", Fees1 = "", Penalty1 = "", Costs1 = "", Totaldue11 = "";
                            IWebElement         TaxTB3 = driver.FindElement(By.XPath("//*[@id='cc5f8c90dc-b4cb-431b-90ee-10648f8df655']/div/div/div/div/div[1]/div[2]/div[3]/table/tbody"));
                            IList <IWebElement> TaxTR3 = TaxTB3.FindElements(By.TagName("tr"));
                            IList <IWebElement> TaxTD3;
                            foreach (IWebElement Tax2 in TaxTR3)
                            {
                                //TaxTR3 = Tax2.FindElements(By.TagName("tr"));
                                TaxTD3 = Tax2.FindElements(By.TagName("td"));
                                if (TaxTD3.Count == 2 && Tax2.Text.Trim() != "" && Tax2.Text.Trim().Contains("Base Taxes"))
                                {
                                    Basetax = TaxTD3[1].Text.Trim();
                                }
                                if (TaxTD3.Count == 2 && Tax2.Text.Trim() != "" && Tax2.Text.Trim().Contains("Credit"))
                                {
                                    Credit1 = TaxTD3[1].Text.Trim();
                                }
                                if (TaxTD3.Count == 2 && Tax2.Text.Trim() != "" && Tax2.Text.Trim().Contains("Fees"))
                                {
                                    Fees1 = TaxTD3[1].Text.Trim();
                                }
                                if (TaxTD3.Count == 2 && Tax2.Text.Trim() != "" && Tax2.Text.Trim().Contains("Penalty"))
                                {
                                    Penalty1 = TaxTD3[1].Text.Trim();
                                }
                                if (TaxTD3.Count == 2 && Tax2.Text.Trim() != "" && Tax2.Text.Trim().Contains("Costs"))
                                {
                                    Costs1 = TaxTD3[1].Text.Trim();
                                }
                                if (TaxTD3.Count == 2 && Tax2.Text.Trim() != "" && Tax2.Text.Trim().Contains("Total Due"))
                                {
                                    Totaldue11 = TaxTD3[1].Text.Trim();
                                }
                            }//Penalty1="", Costs1="",Totaldue11=""
                             //db.ExecuteQuery("update data_field_master set Data_Fields_Text='" + Title.Remove(Value.Length - 1, 1) + "' where Id = '" + 1445 + "'");
                            string Taxinformationdetails = BillTaxYearinfo.Trim() + "~" + Basetax.Trim() + "~" + Credit1.Trim() + "~" + Fees1.Trim() + "~" + Penalty1.Trim() + "~" + Costs1.Trim() + "~" + Totaldue11.Trim();
                            gc.insert_date(orderNumber, ParcelNumber, 1445, Taxinformationdetails, 1, DateTime.Now);
                            //***Due Date Details**
                            string              Ifpaidby = "", Penaltydue = "", Amountdue = "";
                            IWebElement         DueTB = driver.FindElement(By.XPath("//*[@id='cc5f8c90dc-b4cb-431b-90ee-10648f8df655']/div/div/div/div/div[1]/div[3]/div[2]/table"));
                            IList <IWebElement> DueTR = DueTB.FindElements(By.TagName("tr"));
                            IList <IWebElement> DueTH = DueTB.FindElements(By.TagName("th"));
                            IList <IWebElement> DueTD;

                            foreach (IWebElement Due in DueTR)
                            {
                                try
                                {
                                    DueTD = Due.FindElements(By.TagName("td"));
                                    DueTH = Due.FindElements(By.TagName("th"));

                                    if (DueTH.Count != 0)
                                    {
                                        Penaltydue = DueTH[1].Text;
                                        Amountdue  = DueTH[2].Text;
                                        db.ExecuteQuery("update data_field_master set Data_Fields_Text='" + "Tax Year~If Paid by~" + Penaltydue + "~" + Amountdue + "' where Id = '" + 1546 + "'");
                                    }
                                    if (DueTD.Count != 0)
                                    {
                                        Ifpaidby   = DueTD[0].Text;
                                        Penaltydue = DueTD[1].Text;
                                        Amountdue  = DueTD[2].Text;
                                        string Duedatedetails = BillTaxYearinfo + "~" + Ifpaidby + "~" + Penaltydue + "~" + Amountdue;
                                        gc.insert_date(orderNumber, Parcelid, 1546, Duedatedetails, 1, DateTime.Now);
                                    }
                                }
                                catch { }
                            }
                            //Tax Bill Download
                            try
                            {
                                driver.FindElement(By.XPath("//*[@id='cc5f8c90dc-b4cb-431b-90ee-10648f8df655']/div/div/div/ul/li[2]/a/div")).Click();
                                Thread.Sleep(5000);
                                gc.CreatePdf(orderNumber, ParcelNumber, "Tax Bill Details" + BillTaxYearinfo, driver, "SC", "York");
                                //Thread.Sleep(5000);
                            }
                            catch { }
                            driver.Navigate().Back();
                        }
                        catch { }
                    }

                    TaxTime     = DateTime.Now.ToString("HH:mm:ss");
                    CitytaxTime = DateTime.Now.ToString("HH:mm:ss");
                    LastEndTime = DateTime.Now.ToString("HH:mm:ss");
                    gc.insert_TakenTime(orderNumber, "SC", "York", StartTime, AssessmentTime, TaxTime, CitytaxTime, LastEndTime);

                    driver.Quit();
                    gc.mergpdf(orderNumber, "SC", "York");
                    return("Data Inserted Successfully");
                }
                catch (Exception ex)
                {
                    driver.Quit();
                    GlobalClass.LogError(ex, orderNumber);
                    throw ex;
                }
            }
        }
Beispiel #8
0
        public string FTP_StJohnsFL(string address, string ownername, string parcelNumber, string searchType, string orderNumber, string directParcel)
        {
            GlobalClass.global_orderNo             = orderNumber;
            HttpContext.Current.Session["orderNo"] = orderNumber;
            GlobalClass.global_parcelNo            = parcelNumber;
            List <string> multiparcel = new List <string>();
            string        StartTime = "", AssessmentTime = "", TaxTime = "", CitytaxTime = "", LastEndTime = "";

            var driverService = PhantomJSDriverService.CreateDefaultService();

            driverService.HideCommandPromptWindow = true;
            using (driver = new PhantomJSDriver())
            {
                StartTime = DateTime.Now.ToString("HH:mm:ss");

                driver.Navigate().GoToUrl("https://qpublic.schneidercorp.com/Application.aspx?App=StJohnsCountyFL&Layer=Parcels&PageType=Search");
                Thread.Sleep(2000);
                try
                {
                    driver.FindElement(By.XPath("//*[@id='appBody']/div[4]/div/div/div[3]/a[1]")).SendKeys(Keys.Enter);
                }
                catch { }
                try
                {
                    if (searchType == "titleflex")
                    {
                        gc.TitleFlexSearch(orderNumber, "", ownername, address, "FL", "St Johns");
                        if ((HttpContext.Current.Session["TitleFlex_Search"] != null && HttpContext.Current.Session["TitleFlex_Search"].ToString() == "Yes"))
                        {
                            driver.Quit();
                            return("MultiParcel");
                        }
                        else if (HttpContext.Current.Session["titleparcel"].ToString() == "")
                        {
                            HttpContext.Current.Session["Nodata_FLStJohns"] = "Yes";
                            driver.Quit();
                            return("No Data Found");
                        }
                        parcelNumber = HttpContext.Current.Session["titleparcel"].ToString();
                        searchType   = "parcel";
                    }
                    if (searchType == "address")
                    {
                        driver.FindElement(By.Id("ctlBodyPane_ctl01_ctl01_txtAddress")).SendKeys(address);
                        gc.CreatePdf_WOP(orderNumber, "SearchAddressBefore", driver, "FL", "St Johns");
                        driver.FindElement(By.Id("ctlBodyPane_ctl01_ctl01_btnSearch")).SendKeys(Keys.Enter);
                        Thread.Sleep(2000);

                        //Multiparcel
                        try
                        {
                            Thread.Sleep(2000);
                            string              Owner = "", Address = "", MultiParcelNumber = "";
                            int                 Mcount     = 0;
                            IWebElement         multy      = driver.FindElement(By.Id("ctlBodyPane_ctl00_ctl01_gvwParcelResults"));
                            IList <IWebElement> muladdress = multy.FindElements(By.TagName("tr"));
                            IList <IWebElement> mulid;
                            foreach (IWebElement addressrow in muladdress)
                            {
                                mulid = addressrow.FindElements(By.TagName("td"));
                                if (mulid.Count != 0 && !addressrow.Text.Contains("ParcelID"))
                                {
                                    if (Mcount <= 25)
                                    {
                                        MultiParcelNumber = mulid[1].Text;
                                        Owner             = mulid[2].Text;
                                        Address           = mulid[3].Text;
                                        string MultyInst = Owner + "~" + Address;
                                        gc.insert_date(orderNumber, MultiParcelNumber, 740, MultyInst, 1, DateTime.Now);
                                    }
                                    Mcount++;
                                }
                            }

                            gc.CreatePdf_WOP(orderNumber, "Multiparcel Result", driver, "FL", "St Johns");
                            if (Mcount > 25)
                            {
                                HttpContext.Current.Session["multiParcel_StJohns_Maximum"] = "Maximum";
                                return("Maximum");
                            }
                            else
                            {
                                HttpContext.Current.Session["multiparcel_StJohns"] = "Yes";
                            }
                            driver.Quit();
                            return("MultiParcel");
                        }
                        catch
                        {
                        }
                        try
                        {
                            //No Data Found
                            string nodata = driver.FindElement(By.Id("ctlBodyPane_noDataList_pnlNoResults")).Text;
                            if (nodata.Contains("No results match your search criteria."))
                            {
                                HttpContext.Current.Session["Nodata_FLStJohns"] = "Yes";
                                driver.Quit();
                                return("No Data Found");
                            }
                        }
                        catch { }
                    }

                    if (searchType == "ownername")
                    {
                        driver.FindElement(By.Id("ctlBodyPane_ctl00_ctl01_txtName")).SendKeys(ownername);
                        gc.CreatePdf_WOP(orderNumber, "OwnernamesearchBefore", driver, "FL", "St Johns");
                        driver.FindElement(By.Id("ctlBodyPane_ctl00_ctl01_btnSearch")).SendKeys(Keys.Enter);
                        Thread.Sleep(4000);
                        //MULTIPARCEL
                        try
                        {
                            Thread.Sleep(2000);
                            string              Owner = "", Address = "", MultiParcelNumber = "";
                            int                 Mcount     = 0;
                            IWebElement         multipar   = driver.FindElement(By.XPath("//*[@id='ctlBodyPane_ctl00_ctl01_gvwParcelResults']/tbody"));
                            IList <IWebElement> multiowner = multipar.FindElements(By.TagName("tr"));
                            IList <IWebElement> mulid;
                            foreach (IWebElement addressrow in multiowner)
                            {
                                mulid = addressrow.FindElements(By.TagName("td"));
                                if (mulid.Count != 0)
                                {
                                    if (Mcount <= 25)
                                    {
                                        MultiParcelNumber = mulid[1].Text;
                                        Owner             = mulid[2].Text;
                                        Address           = mulid[3].Text;
                                        string MultyInst = Owner + "~" + Address;
                                        gc.insert_date(orderNumber, MultiParcelNumber, 740, MultyInst, 1, DateTime.Now);
                                    }
                                    Mcount++;
                                }
                            }

                            gc.CreatePdf_WOP(orderNumber, "Multiparcel Result", driver, "FL", "St Johns");
                            if (Mcount > 25)
                            {
                                HttpContext.Current.Session["multiParcel_StJohns"] = "Maximum";
                                return("Maximum");
                            }
                            else
                            {
                                HttpContext.Current.Session["multiparcel_StJohns"] = "Yes";
                            }
                            driver.Quit();
                            return("MultiParcel");
                        }
                        catch
                        {
                        }
                        try
                        {
                            //No Data Found
                            string nodata = driver.FindElement(By.Id("ctlBodyPane_noDataList_pnlNoResults")).Text;
                            if (nodata.Contains("No results match your search criteria."))
                            {
                                HttpContext.Current.Session["Nodata_FLStJohns"] = "Yes";
                                driver.Quit();
                                return("No Data Found");
                            }
                        }
                        catch { }
                    }
                    if (searchType == "parcel")
                    {
                        driver.FindElement(By.Id("ctlBodyPane_ctl02_ctl01_txtParcelID")).SendKeys(parcelNumber);
                        gc.CreatePdf_WOP(orderNumber, "ParcelsearchBefore", driver, "FL", "St Johns");
                        driver.FindElement(By.Id("ctlBodyPane_ctl02_ctl01_btnSearch")).SendKeys(Keys.Enter);
                        Thread.Sleep(2000);
                        try
                        {
                            //No Data Found
                            string nodata = driver.FindElement(By.Id("ctlBodyPane_noDataList_pnlNoResults")).Text;
                            if (nodata.Contains("No results match your search criteria."))
                            {
                                HttpContext.Current.Session["Nodata_FLStJohns"] = "Yes";
                                driver.Quit();
                                return("No Data Found");
                            }
                        }
                        catch { }
                    }
                    //Property Details
                    string ParcelID = "", OwnerName = "", PropertyAddress = "", MailingAddress = "", PropertyType = "", District = "", MillageRate = "", Acreage = "", Home1 = "", Homestead = "", YearBuilt = "", LegalDescription = "", Legal1 = "";

                    string bulktextdata = driver.FindElement(By.XPath("//*[@id='ctlBodyPane_ctl03_mSection']/div/table")).Text.Trim();
                    ParcelID         = gc.Between(bulktextdata, "Parcel ID", "Location Address").Trim();
                    PropertyAddress  = gc.Between(bulktextdata, "Location Address", "Neighborhood").Trim();
                    Legal1           = gc.Between(bulktextdata, "Tax Description*", "Property Use Code").Trim();
                    LegalDescription = GlobalClass.Before(Legal1, "*The Description").Replace("\r\n", " ").Trim();
                    PropertyType     = gc.Between(bulktextdata, "Property Use Code", "Subdivision").Trim();
                    District         = gc.Between(bulktextdata, "District", "Millage Rate").Trim();
                    MillageRate      = gc.Between(bulktextdata, "Millage Rate", "Acreage").Trim();
                    Acreage          = gc.Between(bulktextdata, "Acreage", "Homestead").Trim();
                    Home1            = GlobalClass.After(bulktextdata, "Homestead").Trim();
                    Homestead        = GlobalClass.Before(Home1, "\r\n\r\nView Map").Trim();

                    string bulktextdata1 = driver.FindElement(By.Id("ctlBodyPane_ctl04_mSection")).Text.Trim();
                    OwnerName      = gc.Between(bulktextdata1, "Owner Name", "Mailing Address").Trim();
                    MailingAddress = GlobalClass.After(bulktextdata1, "Mailing Address").Replace("\r\n", " ").Trim();
                    try
                    {
                        IWebElement         tbyearbuilt = driver.FindElement(By.XPath("//*[@id='ctlBodyPane_ctl08_mSection']/div/div[1]/div[1]/table"));
                        IList <IWebElement> TRyearbuilt = tbyearbuilt.FindElements(By.TagName("tr"));
                        IList <IWebElement> TDyearbuilt;
                        foreach (IWebElement row in TRyearbuilt)
                        {
                            TDyearbuilt = row.FindElements(By.TagName("td"));
                            if (TDyearbuilt.Count != 0 && row.Text.Contains("Actual Year Built"))
                            {
                                YearBuilt = TDyearbuilt[1].Text;
                                break;
                            }
                        }
                    }
                    catch { }

                    string propertydetails = OwnerName + "~" + PropertyAddress + "~" + MailingAddress + "~" + PropertyType + "~" + District + "~" + MillageRate + "~" + Acreage + "~" + Homestead + "~" + YearBuilt + "~" + LegalDescription;
                    gc.insert_date(orderNumber, ParcelID, 669, propertydetails, 1, DateTime.Now);


                    //Current Year Assessment Details
                    string Year1 = "";
                    Year1 = driver.FindElement(By.XPath("//*[@id='ctlBodyPane_ctl05_ctl01_grdValuation']/thead/tr")).Text.Trim();
                    gc.CreatePdf(orderNumber, ParcelID, "Assessment Details", driver, "FL", "St Johns");
                    try
                    {
                        string              AssessmentTitle = "", AssessmentValue = "";
                        IWebElement         tbcurasses12 = driver.FindElement(By.Id("ctlBodyPane_ctl05_ctl01_grdValuation"));
                        IList <IWebElement> TRcurasses2  = tbcurasses12.FindElements(By.TagName("tr"));
                        IList <IWebElement> TDmulti12;
                        foreach (IWebElement row in TRcurasses2)
                        {
                            TDmulti12 = row.FindElements(By.TagName("td"));
                            if (TDmulti12.Count != 0 && !row.Text.Contains("Year"))
                            {
                                AssessmentTitle += TDmulti12[0].Text + "~";
                                AssessmentValue += TDmulti12[1].Text + "~";
                            }
                        }
                        db.ExecuteQuery("update data_field_master set Data_Fields_Text='" + "Year" + "~" + AssessmentTitle.Remove(AssessmentTitle.Length - 1, 1) + "' where Id = '" + 703 + "'");

                        gc.insert_date(orderNumber, ParcelID, 703, Year1 + "~" + AssessmentValue.Remove(AssessmentValue.Length - 1, 1), 1, DateTime.Now);
                    }
                    catch { }
                    //Assessment Details
                    try
                    {
                        string              AssessmentYear = "", BuildingValue = "", ExtraFeaturesValue = "", TotalLandValue = "", AgMarketValue = "", AgAssessedValue = "", JustMarketValue = "", AssessedValue = "", TotalExemptions = "", TaxableValue = "";
                        IWebElement         tbmulti12 = driver.FindElement(By.Id("ctlBodyPane_ctl06_ctl01_grdHistory"));
                        IList <IWebElement> TRmulti12 = tbmulti12.FindElements(By.TagName("tr"));
                        IList <IWebElement> TDmulti12;
                        foreach (IWebElement row in TRmulti12)
                        {
                            TDmulti12 = row.FindElements(By.TagName("td"));
                            if (TDmulti12.Count != 0 && !row.Text.Contains("Year"))
                            {
                                AssessmentYear     = TDmulti12[0].Text;
                                BuildingValue      = TDmulti12[1].Text;
                                ExtraFeaturesValue = TDmulti12[2].Text;
                                TotalLandValue     = TDmulti12[3].Text;
                                AgMarketValue      = TDmulti12[4].Text;
                                AgAssessedValue    = TDmulti12[5].Text;
                                JustMarketValue    = TDmulti12[6].Text;
                                AssessedValue      = TDmulti12[7].Text;
                                TotalExemptions    = TDmulti12[8].Text;
                                TaxableValue       = TDmulti12[9].Text;

                                string AssessmentDetails = AssessmentYear.Trim() + "~" + BuildingValue.Trim() + "~" + ExtraFeaturesValue.Trim() + "~" + TotalLandValue.Trim() + "~" + AgMarketValue.Trim() + "~" + AgAssessedValue.Trim() + "~" + JustMarketValue.Trim() + "~" + AssessedValue.Trim() + "~" + TotalExemptions.Trim() + "~" + TaxableValue.Trim();
                                gc.insert_date(orderNumber, ParcelID, 714, AssessmentDetails, 1, DateTime.Now);
                            }
                        }
                    }
                    catch { }
                    AssessmentTime = DateTime.Now.ToString("HH:mm:ss");

                    //======Tax Information Details========
                    driver.Navigate().GoToUrl("http://stjohnstaxcollector.governmax.com/collectmax/homepage.asp?sid=5FAB060742144FB697559EEB012FC40A&agencyid=stjohnstaxcollector");
                    Thread.Sleep(2000);
                    IWebElement url = driver.FindElement(By.LinkText("Account or Parcel Number"));
                    string      Tag = url.GetAttribute("href");
                    url.Click();

                    string TaxParcel = ParcelID.Substring(0, 6) + "-" + ParcelID.Substring(6, 4);
                    driver.FindElement(By.XPath("/html/body/table[2]/tbody/tr[2]/td[2]/table/tbody/tr/td/table/tbody/tr/td/table/tbody/tr[1]/td/table/tbody/tr/td/table/tbody/tr[2]/td/font/input")).SendKeys(TaxParcel);
                    gc.CreatePdf(orderNumber, ParcelID, "Enter the Account Number Before", driver, "FL", "St Johns");
                    driver.FindElement(By.XPath("/html/body/table[2]/tbody/tr[2]/td[2]/table/tbody/tr/td/table/tbody/tr/td/table/tbody/tr[4]/td/input")).SendKeys(Keys.Enter);
                    Thread.Sleep(30000);
                    gc.CreatePdf(orderNumber, ParcelID, "Enter the Account Number After", driver, "FL", "St Johns");
                    string AccountNumber = "", TaxType = "", TaxYear = "", TaxOwnerName = "", TaxPropertyAddress = "", ExemptionAmount = "", TaxableValue1 = "", ExemptionTypeAndAmount = "",
                           Exemption = "", ExemptionTypeFirst = "", ExemptionTypeSecond = "", ExemptionAmountFirst = "", ExemptionAmountSecond = "", MillageCode = "", PaidDate = "", TransactionType = "", ReceiptNumber = "", Item = "", PaidAmount = "", TaxingAuthority = "";

                    try
                    {
                        IWebElement         tbmulti13   = driver.FindElement(By.XPath("/html/body/table[2]/tbody/tr[2]/td[2]/table/tbody/tr/td/table[3]/tbody"));
                        IList <IWebElement> TRowmulti13 = tbmulti13.FindElements(By.TagName("tr"));
                        IList <IWebElement> TDmulti13;
                        foreach (IWebElement row in TRowmulti13)
                        {
                            TDmulti13 = row.FindElements(By.TagName("td"));
                            if (TDmulti13.Count != 0 && !row.Text.Contains("Account or Parcel Number") && !row.Text.Contains("Mailing Address"))
                            {
                                AccountNumber = TDmulti13[0].Text;
                                TaxType       = TDmulti13[1].Text;
                                TaxYear       = TDmulti13[2].Text;
                                break;
                            }
                        }
                    }
                    catch { }
                    // TaxOwnerName = driver.FindElement(By.Id("ctlBodyPane_ctl04_mSection")).Text.Trim();
                    // string bulktext1 = driver.FindElement(By.XPath("/html/body/table[2]/tbody/tr[2]/td[2]/table/tbody/tr/td/table[3]/tbody/tr[3]/td/table/tbody")).Text.Trim();
                    //  TaxPropertyAddress = GlobalClass.After(bulktext1, "Physical Address").Replace("\r\n", " ").Trim();
                    Thread.Sleep(5000);

                    try
                    {
                        IWebElement         tbmulti14   = driver.FindElement(By.XPath("/html/body/table[2]/tbody/tr[2]/td[2]/table/tbody/tr/td/table[3]/tbody"));
                        IList <IWebElement> TRowmulti14 = tbmulti14.FindElements(By.TagName("tr"));
                        IList <IWebElement> TDmulti14;
                        foreach (IWebElement row in TRowmulti14)
                        {
                            TDmulti14 = row.FindElements(By.TagName("td"));
                            if (TDmulti14.Count != 0 && (Exemption == "Yes"))
                            {
                                ExemptionAmount = TDmulti14[0].Text;
                                TaxableValue1   = TDmulti14[1].Text;
                                break;
                            }
                            if (TDmulti14.Count != 0 && TDmulti14.Count == 2 && !(Exemption == "Yes") && (row.Text.Contains("Mailing Address")))
                            {
                                string strOwnerName = GlobalClass.After(TDmulti14[0].Text, "Mailing Address   \r\n");
                                strOwnerName = strOwnerName.Replace("\r\n", "~");
                                string[] Owner = strOwnerName.Split('~');
                                TaxOwnerName       = Owner[0];
                                TaxPropertyAddress = GlobalClass.After(TDmulti14[1].Text, "Physical Address   \r\n");
                            }
                            if (row.Text.Contains("Exempt Amount") && row.Text.Contains("Taxable Value "))
                            {
                                Exemption = "Yes";
                            }
                        }
                    }
                    catch { }

                    try
                    {
                        IWebElement         tbmulti15   = driver.FindElement(By.XPath("/html/body/table[2]/tbody/tr[2]/td[2]/table/tbody/tr/td/table[3]/tbody/tr[6]/td/table/tbody/tr/td/table/tbody/tr[2]/td[1]/table/tbody"));
                        IList <IWebElement> TRowmulti15 = tbmulti15.FindElements(By.TagName("tr"));
                        IList <IWebElement> TDmulti15;
                        foreach (IWebElement row in TRowmulti15)
                        {
                            TDmulti15 = row.FindElements(By.TagName("td"));
                            if (TDmulti15.Count != 0)
                            {
                                ExemptionTypeFirst   += TDmulti15[0].Text + ",";
                                ExemptionAmountFirst += TDmulti15[1].Text + ",";
                            }
                        }
                        ExemptionTypeFirst   = ExemptionTypeFirst.TrimEnd(',');
                        ExemptionAmountFirst = ExemptionAmountFirst.TrimEnd(',');
                    }
                    catch
                    {
                    }
                    ExemptionTypeAndAmount = ExemptionTypeFirst + "-" + ExemptionAmountFirst;

                    try
                    {
                        IWebElement         tbmillage1   = driver.FindElement(By.XPath("/html/body/table[2]/tbody/tr[2]/td[2]/table/tbody/tr/td/table[3]/tbody/tr[6]/td/table/tbody/tr/td/table/tbody"));
                        IList <IWebElement> TRowmillage1 = tbmillage1.FindElements(By.TagName("tr"));

                        IList <IWebElement> TDRowmillage1;
                        foreach (IWebElement row in TRowmillage1)
                        {
                            TDRowmillage1 = row.FindElements(By.TagName("td"));
                            if (!row.Text.Contains("Exemption Detail"))
                            {
                                if (row.Text.Contains("NO EXEMPTIONS"))
                                {
                                    ExemptionTypeAndAmount = TDRowmillage1[0].Text;
                                    MillageCode            = TDRowmillage1[1].Text;
                                }
                            }

                            if (TDRowmillage1.Count == 7 && !row.Text.Contains("Exemption"))
                            {
                                MillageCode = TDRowmillage1[5].Text;
                            }
                            if (TDRowmillage1.Count == 5 && !row.Text.Contains("Exemption"))
                            {
                                MillageCode = TDRowmillage1[3].Text;
                            }
                        }
                    }

                    catch
                    {
                    }
                    try
                    {
                        IWebElement tbmulti16 = driver.FindElement(By.XPath("/html/body/table[2]/tbody/tr[2]/td[2]/table/tbody/tr/td/table[5]/tbody"));
                        if (!tbmulti16.Text.Contains("Prior Years Due ") && !tbmulti16.Text.Contains("Prior Year Taxes Due "))
                        {
                            IList <IWebElement> TRowmulti16 = tbmulti16.FindElements(By.TagName("tr"));
                            IList <IWebElement> TDmulti16;
                            foreach (IWebElement row in TRowmulti16)
                            {
                                TDmulti16 = row.FindElements(By.TagName("td"));
                                if (TDmulti16.Count != 0 && !row.Text.Contains("Date Paid") && !row.Text.Contains("If Paid By ") && !row.Text.Contains("Prior Years Due "))
                                {
                                    PaidDate        = TDmulti16[0].Text;
                                    TransactionType = TDmulti16[1].Text;
                                    ReceiptNumber   = TDmulti16[2].Text;
                                    Item            = TDmulti16[3].Text;
                                    PaidAmount      = TDmulti16[4].Text;
                                    break;
                                }
                            }
                        }
                    }
                    catch { }
                    string ifpaidby = "", amountdue = "";
                    try
                    {
                        IWebElement tbifpaid = driver.FindElement(By.XPath("/html/body/table[2]/tbody/tr[2]/td[2]/table/tbody/tr/td/table[4]/tbody/tr/td/table/tbody"));
                        if (!tbifpaid.Text.Contains("Year "))
                        {
                            IList <IWebElement> TRowifpaid = tbifpaid.FindElements(By.TagName("tr"));
                            IList <IWebElement> TDifpaid;
                            foreach (IWebElement row in TRowifpaid)
                            {
                                TDifpaid = row.FindElements(By.TagName("td"));
                                if (TDifpaid.Count != 0 && !row.Text.Contains("If Paid By ") && !row.Text.Contains("Amount Due "))
                                {
                                    ifpaidby  = TDifpaid[0].Text;
                                    amountdue = TDifpaid[1].Text;
                                    break;
                                }
                            }
                        }
                    }
                    catch { }

                    string bulktext = driver.FindElement(By.XPath("/html/body/table[1]/tbody/tr/td[2]")).Text.Trim();
                    TaxingAuthority = GlobalClass.After(bulktext, "Hollingsworth").Replace("\r\n", " ").Trim();
                    string TaxInformationDetails = AccountNumber.Trim() + "~" + TaxType.Trim() + "~" + TaxYear.Trim() + "~" + TaxOwnerName.Trim() + "~" + TaxPropertyAddress.Trim() + "~" + ExemptionAmount.Trim() + "~" + TaxableValue1.Trim() + "~" + ExemptionTypeAndAmount.Trim() + "~" + MillageCode.Trim() + "~" + PaidDate.Trim() + "~" + TransactionType.Trim() + "~" + ReceiptNumber.Trim() + "~" + Item.Trim() + "~" + PaidAmount.Trim() + "~" + TaxingAuthority.Trim() + "~" + ifpaidby.Trim() + "~" + amountdue.Trim();
                    gc.insert_date(orderNumber, ParcelID, 777, TaxInformationDetails, 1, DateTime.Now);

                    //Tax Distribution Table:
                    string TAuthority = "", TRate = "", TDistributionAssessedValue = "", TDistributionExemptionAmount = "", TDistributionTaxableValue = "", TDistributionLevied = "";
                    try
                    {
                        IWebElement         tbmulti17   = driver.FindElement(By.XPath("/html/body/table[2]/tbody/tr[2]/td[2]/table/tbody/tr/td/table[3]/tbody/tr[8]/td/table[1]"));
                        IList <IWebElement> TRowmulti17 = tbmulti17.FindElements(By.TagName("tr"));
                        IList <IWebElement> TDmulti17;
                        foreach (IWebElement row in TRowmulti17)
                        {
                            TDmulti17 = row.FindElements(By.TagName("td"));
                            if (TDmulti17.Count != 0 && TDmulti17.Count == 6 && !row.Text.Contains("Taxing Authority"))
                            {
                                TAuthority = TDmulti17[0].Text;
                                TRate      = TDmulti17[1].Text;
                                TDistributionAssessedValue   = TDmulti17[2].Text;
                                TDistributionExemptionAmount = TDmulti17[3].Text;
                                TDistributionTaxableValue    = TDmulti17[4].Text;
                                TDistributionLevied          = TDmulti17[5].Text;

                                string TaxDistributionTable1 = TAuthority.Trim() + "~" + "" + "~" + "Ad Valorem Taxes" + "~" + TRate.Trim() + "~" + TDistributionAssessedValue.Trim() + "~" + TDistributionExemptionAmount.Trim() + "~" + TDistributionTaxableValue.Trim() + "~" + TDistributionLevied.Trim();
                                gc.insert_date(orderNumber, ParcelID, 729, TaxDistributionTable1, 1, DateTime.Now);
                            }
                            if (TDmulti17.Count == 2)
                            {
                                TAuthority = ""; TRate = ""; TDistributionAssessedValue = ""; TDistributionExemptionAmount = ""; TDistributionTaxableValue = ""; TDistributionLevied = "";
                                TAuthority = TDmulti17[0].Text;
                                TRate      = TDmulti17[1].Text;

                                string TaxDistributionDetails = TAuthority.Trim() + "~" + "" + "~" + "Ad Valorem Taxes" + "~" + TRate.Trim() + "~" + TDistributionAssessedValue.Trim() + "~" + TDistributionExemptionAmount.Trim() + "~" + TDistributionTaxableValue.Trim() + "~" + TDistributionLevied.Trim();
                                gc.insert_date(orderNumber, ParcelID, 729, TaxDistributionDetails, 1, DateTime.Now);
                            }
                        }
                    }
                    catch { }

                    string TotalMillage = "", TotalTaxes = "";
                    try
                    {
                        IWebElement         tbmulti18   = driver.FindElement(By.XPath("html/body/table[2]/tbody/tr[2]/td[2]/table/tbody/tr/td/table[3]/tbody/tr[8]/td/table[2]/tbody"));
                        IList <IWebElement> TRowmulti18 = tbmulti18.FindElements(By.TagName("tr"));
                        IList <IWebElement> TDmulti18;
                        foreach (IWebElement row in TRowmulti18)
                        {
                            TDmulti18 = row.FindElements(By.TagName("td"));
                            if (TDmulti18.Count != 0)
                            {
                                TotalMillage = TDmulti18[1].Text;
                                TotalTaxes   = TDmulti18[3].Text;

                                string TaxDistributionTable1 = "TOTAL" + "~" + "" + "~" + "Ad Valorem Taxes" + "~" + TotalMillage.Trim() + "~" + "" + "~" + "" + "~" + "" + "~" + TotalTaxes.Trim();
                                gc.insert_date(orderNumber, ParcelID, 729, TaxDistributionTable1, 1, DateTime.Now);
                                break;
                            }
                        }
                    }
                    catch { }

                    string Code = "", LevyingAuthority = "", Amount = "";
                    try
                    {
                        IWebElement         tbmulti19   = driver.FindElement(By.XPath("html/body/table[2]/tbody/tr[2]/td[2]/table/tbody/tr/td/table[3]/tbody/tr[10]/td/table[1]/tbody"));
                        IList <IWebElement> TRowmulti19 = tbmulti19.FindElements(By.TagName("tr"));
                        IList <IWebElement> TDmulti19;
                        foreach (IWebElement row in TRowmulti19)
                        {
                            TDmulti19 = row.FindElements(By.TagName("td"));
                            if (TDmulti19.Count != 0 && TDmulti19.Count == 3 && !row.Text.Contains("Code"))
                            {
                                Code             = TDmulti19[0].Text;
                                LevyingAuthority = TDmulti19[1].Text;
                                Amount           = TDmulti19[2].Text;
                                string TaxDistributionTable3 = LevyingAuthority.Trim() + "~" + Code.Trim() + "~" + "Non-Ad Valorem Taxes" + "~" + "" + "~" + "" + "~" + "" + "~" + "" + "~" + Amount.Trim();
                                gc.insert_date(orderNumber, ParcelID, 729, TaxDistributionTable3, 1, DateTime.Now);
                            }
                        }
                    }
                    catch
                    {
                    }

                    string TotalAssessments = "";
                    try
                    {
                        IWebElement         tbmulti20   = driver.FindElement(By.XPath("html/body/table[2]/tbody/tr[2]/td[2]/table/tbody/tr/td/table[3]/tbody/tr[10]/td/table[2]"));
                        IList <IWebElement> TRowmulti20 = tbmulti20.FindElements(By.TagName("tr"));
                        IList <IWebElement> TDmulti20;
                        foreach (IWebElement row in TRowmulti20)
                        {
                            TDmulti20 = row.FindElements(By.TagName("td"));
                            if (TDmulti20.Count != 0)
                            {
                                TotalAssessments = TDmulti20[1].Text;
                                string TaxDistributionTable3 = "Total Assessments" + "~" + "" + "~" + "Non-Ad Valorem Taxes" + "~" + "" + "~" + "" + "~" + "" + "~" + "" + "~" + TotalAssessments.Trim();
                                gc.insert_date(orderNumber, ParcelID, 729, TaxDistributionTable3, 1, DateTime.Now);
                                break;
                            }
                        }
                    }
                    catch { }
                    string TaxesAndAssessments = "";
                    try
                    {
                        IWebElement         tbmulti21   = driver.FindElement(By.XPath("/html/body/table[2]/tbody/tr[2]/td[2]/table/tbody/tr/td/table[3]/tbody/tr[11]/td/table"));
                        IList <IWebElement> TRowmulti21 = tbmulti21.FindElements(By.TagName("tr"));
                        IList <IWebElement> TDmulti21;
                        foreach (IWebElement row in TRowmulti21)
                        {
                            TDmulti21 = row.FindElements(By.TagName("td"));
                            if (TDmulti21.Count != 0)
                            {
                                TaxesAndAssessments = TDmulti21[3].Text;
                                string TaxDistributionTable4 = "Taxes And Assessments" + "~" + "" + "~" + "Non-Ad Valorem Taxes" + "~" + "" + "~" + "" + "~" + "" + "~" + "" + "~" + TaxesAndAssessments.Trim();
                                gc.insert_date(orderNumber, ParcelID, 729, TaxDistributionTable4, 1, DateTime.Now);
                                break;
                            }
                        }
                    }
                    catch { }
                    //Delinquent Details
                    string strTaxYear = "", strTaxFolio = "", strStatus = "", strTaxCertificateYear = "", strTaxCertificateNo = "", strTaxAmount = "";
                    try
                    {
                        IWebElement         tbmulti23   = driver.FindElement(By.XPath("/html/body/table[2]/tbody/tr[2]/td[2]/table/tbody/tr/td/table[4]/tbody/tr[2]/td/table[1]"));
                        IList <IWebElement> TRowmulti23 = tbmulti23.FindElements(By.TagName("tr"));
                        IList <IWebElement> TDmulti23;
                        foreach (IWebElement row in TRowmulti23)
                        {
                            TDmulti23 = row.FindElements(By.TagName("td"));
                            if (TDmulti23.Count != 0 && !row.Text.Contains("Year ") && TDmulti23.Count == 7)
                            {
                                strTaxYear            = TDmulti23[0].Text;
                                strTaxFolio           = TDmulti23[1].Text;
                                strStatus             = TDmulti23[2].Text;
                                strTaxCertificateNo   = TDmulti23[3].Text;
                                strTaxCertificateYear = TDmulti23[4].Text;
                                strTaxAmount          = TDmulti23[5].Text;


                                string UnpaidDetails = strTaxYear + "~" + strTaxFolio + "~" + strStatus + "~" + strTaxCertificateNo + "~" + strTaxCertificateYear + "~" + strTaxAmount;
                                gc.insert_date(orderNumber, ParcelID, 742, UnpaidDetails, 1, DateTime.Now);
                            }
                        }
                    }
                    catch { }
                    string strPriorYearTotal = "";
                    try
                    {
                        IWebElement         tbmulti24   = driver.FindElement(By.XPath("/html/body/table[2]/tbody/tr[2]/td[2]/table/tbody/tr/td/table[4]/tbody/tr[2]/td/table[3]/tbody"));
                        IList <IWebElement> TRowmulti24 = tbmulti24.FindElements(By.TagName("tr"));
                        IList <IWebElement> TDmulti24;
                        foreach (IWebElement row in TRowmulti24)
                        {
                            TDmulti24 = row.FindElements(By.TagName("td"));
                            if (TDmulti24.Count != 0 && TDmulti24.Count == 2)
                            {
                                strTaxYear        = TDmulti24[0].Text;
                                strPriorYearTotal = TDmulti24[1].Text;

                                string UnpaidDetails1 = "Prior Years Total" + "~" + "" + "~" + "" + "~" + "" + "~" + "" + "~" + strPriorYearTotal;
                                gc.insert_date(orderNumber, ParcelID, 742, UnpaidDetails1, 1, DateTime.Now);
                            }
                        }
                    }
                    catch { }
                    string strIfpaidBy = "", PriorYearsDue = "";
                    try
                    {
                        IWebElement tbmulti25 = driver.FindElement(By.XPath("/html/body/table[2]/tbody/tr[2]/td[2]/table/tbody/tr/td/table[5]/tbody"));
                        if (!tbmulti25.Text.Contains("Prior Year Taxes Due ") && !tbmulti25.Text.Contains("    NO DELINQUENT TAXES "))
                        {
                            IList <IWebElement> TRowmulti25 = tbmulti25.FindElements(By.TagName("tr"));
                            IList <IWebElement> TDmulti25;
                            foreach (IWebElement row in TRowmulti25)
                            {
                                TDmulti25 = row.FindElements(By.TagName("td"));
                                if (TDmulti25.Count != 0 && TDmulti25.Count == 2 && !row.Text.Contains("If Paid By "))
                                {
                                    strIfpaidBy   = TDmulti25[0].Text;
                                    PriorYearsDue = TDmulti25[1].Text;

                                    string UnpaidDetails2 = "" + "~" + "" + "~" + "" + "~" + "" + "~" + "" + "~" + "" + "~" + strIfpaidBy + "~" + PriorYearsDue;
                                    gc.insert_date(orderNumber, ParcelID, 742, UnpaidDetails2, 1, DateTime.Now);
                                }
                            }
                        }
                    }
                    catch { }

                    //Tax History Details
                    driver.FindElement(By.LinkText("   Payment History")).SendKeys(Keys.Enter);
                    Thread.Sleep(5000);
                    gc.CreatePdf(orderNumber, ParcelID, "PaymentHistoryView", driver, "FL", "St Johns");
                    int YearCount = 0;
                    try
                    {
                        IWebElement         IYear    = driver.FindElement(By.XPath("/html/body/table[2]/tbody/tr[2]/td[2]/table/tbody/tr/td/table/tbody"));
                        IList <IWebElement> IYearRow = IYear.FindElements(By.TagName("tr"));
                        IList <IWebElement> IYearTd;
                        IList <IWebElement> IYearWise;
                        foreach (IWebElement year in IYearRow)
                        {
                            IYearTd = year.FindElements(By.TagName("table"));
                            if (IYearTd.Count != 0)
                            {
                                YearCount = IYearTd.Count;
                            }
                        }
                    }
                    catch { }


                    for (int i = 3; i <= YearCount; i++)
                    {
                        try
                        {
                            string              Year = "", Folio = "", THPaidDate = "", Receipt = "", BilledAmount = "", THPaidAmount = "", THOwnerName = "", PaidBy = "", Status = "";
                            IWebElement         tbmulti22   = driver.FindElement(By.XPath("/html/body/table[2]/tbody/tr[2]/td[2]/table/tbody/tr/td/table/tbody/tr/td/table[" + i + "]/tbody"));
                            IList <IWebElement> TRowmulti22 = tbmulti22.FindElements(By.TagName("tr"));
                            IList <IWebElement> TDmulti22;
                            foreach (IWebElement row in TRowmulti22)
                            {
                                TDmulti22 = row.FindElements(By.TagName("td"));
                                if (TDmulti22.Count != 0 && TDmulti22.Count == 6 && !row.Text.Contains("Payment History") && !row.Text.Contains("Year"))
                                {
                                    Year         = TDmulti22[0].Text;
                                    Folio        = TDmulti22[1].Text;
                                    THPaidDate   = TDmulti22[2].Text;
                                    Receipt      = TDmulti22[3].Text;
                                    BilledAmount = TDmulti22[4].Text;
                                    THPaidAmount = TDmulti22[5].Text;
                                }
                                if (TDmulti22.Count == 2 && row.Text.Contains("Owner Name"))
                                {
                                    THOwnerName = TDmulti22[1].Text;
                                }
                                if (TDmulti22.Count == 2 && TDmulti22.Count < 6 && row.Text.Contains("Paid By") && (THOwnerName != "" && Year != ""))
                                {
                                    PaidBy = TDmulti22[1].Text;
                                    string TaxHistorytable1 = Year.Trim() + "~" + Folio.Trim() + "~" + THPaidDate.Trim() + "~" + Receipt.Trim() + "~" + BilledAmount.Trim() + "~" + THPaidAmount.Trim() + "~" + THOwnerName.Trim() + "~" + PaidBy.Trim();
                                    gc.insert_date(orderNumber, ParcelID, 736, TaxHistorytable1, 1, DateTime.Now);
                                }
                                else if (TDmulti22.Count == 2 && TRowmulti22.Count == 3 && !row.Text.Contains("Paid By"))
                                {
                                    string TaxHistorytable1 = Year.Trim() + "~" + Folio.Trim() + "~" + THPaidDate.Trim() + "~" + Receipt.Trim() + "~" + BilledAmount.Trim() + "~" + THPaidAmount.Trim() + "~" + THOwnerName.Trim() + "~" + PaidBy.Trim();
                                    gc.insert_date(orderNumber, ParcelID, 736, TaxHistorytable1, 1, DateTime.Now);
                                }
                            }
                        }
                        catch
                        {
                        }
                    }
                    try
                    {
                        string taxurl = driver.FindElement(By.XPath("html/body/table[2]/tbody/tr[1]/td[1]/table/tbody/tr[2]/td/table/tbody/tr[8]/td/font/a")).GetAttribute("href");
                        driver.Navigate().GoToUrl(taxurl);
                        Thread.Sleep(5000);
                        gc.CreatePdf(orderNumber, ParcelID, "TaxBillPdf", driver, "FL", "St Johns");
                    }
                    catch { }
                    TaxTime = DateTime.Now.ToString("HH:mm:ss");
                    driver.Quit();
                    gc.mergpdf(orderNumber, "FL", "St Johns");
                    LastEndTime = DateTime.Now.ToString("HH:mm:ss");
                    gc.insert_TakenTime(orderNumber, "FL", "St Johns", StartTime, AssessmentTime, TaxTime, CitytaxTime, LastEndTime);
                    return("Data Inserted Successfully");
                }
                catch (Exception ex)
                {
                    driver.Quit();
                    GlobalClass.LogError(ex, orderNumber);
                    throw ex;
                }
            }
        }
        public string FTP_DouglasNV(string houseno, string Direction, string sname, string stype, string account, string parcelNumber, string ownername, string searchType, string orderNumber, string directParcel)
        {
            GlobalClass.global_orderNo             = orderNumber;
            HttpContext.Current.Session["orderNo"] = orderNumber;
            GlobalClass.global_parcelNo            = parcelNumber;

            string StartTime = "", AssessmentTime = "", TaxTime = "", CitytaxTime = "", LastEndTime = "";
            string lastName = "", firstName = "", Pinnumber = "", PropertyAdd = "", Strownername = "", Pin = "", address = "";

            var driverService = PhantomJSDriverService.CreateDefaultService();

            driverService.HideCommandPromptWindow = true;
            using (driver = new PhantomJSDriver())
            {
                //  using (driver = new ChromeDriver())

                try
                {
                    StartTime = DateTime.Now.ToString("HH:mm:ss");

                    driver.Navigate().GoToUrl("http://assessor-search.douglasnv.us:1401/cgi-bin/asw100");
                    Thread.Sleep(4000);

                    if (searchType == "titleflex")
                    {
                        if (Direction != "")
                        {
                            address = houseno + " " + Direction + " " + sname + " " + stype + " " + account;
                            address = address.Trim();
                        }
                        if (Direction == "")
                        {
                            address = houseno + " " + sname + " " + stype + " " + account;
                            address = address.Trim();
                        }
                        string titleaddress = address;
                        gc.TitleFlexSearch(orderNumber, "", "", titleaddress, "NV", "Douglas");
                        if ((HttpContext.Current.Session["TitleFlex_Search"] != null && HttpContext.Current.Session["TitleFlex_Search"].ToString() == "Yes"))
                        {
                            driver.Quit();
                            return("MultiParcel");
                        }
                        else if (HttpContext.Current.Session["titleparcel"].ToString() == "")
                        {
                            HttpContext.Current.Session["Zero_DouglasNV"] = "Zero";
                            driver.Quit();
                            return("No Data Found");
                        }
                        parcelNumber = HttpContext.Current.Session["titleparcel"].ToString();
                        searchType   = "parcel";
                    }

                    if (searchType == "address")
                    {
                        if (Direction != "" && stype != "")
                        {
                            address = houseno + " " + Direction + " " + sname + " " + stype + " " + account;
                        }
                        if (Direction != "" && stype == "")
                        {
                            address = houseno + " " + Direction + " " + sname + " " + account;
                        }
                        if (Direction == "" && stype != "")
                        {
                            address = houseno + " " + sname + " " + stype + " " + account;
                        }
                        if (Direction == "" && stype == "")
                        {
                            address = houseno + " " + sname + " " + account;
                        }

                        driver.FindElement(By.XPath("//*[@id='body']/form[2]/table/tbody/tr/td/table/tbody/tr[7]/td[4]/div/input")).SendKeys(address.Trim());
                        gc.CreatePdf_WOP(orderNumber, "Address search", driver, "NV", "Douglas");
                        driver.FindElement(By.XPath("//*[@id='body']/form[2]/table/tbody/tr/td/table/tbody/tr[10]/td[5]/div/input")).SendKeys(Keys.Enter);
                        Thread.Sleep(4000);
                        gc.CreatePdf_WOP(orderNumber, "Address Search result", driver, "NV", "Douglas");

                        try
                        {
                            int    Max = 0;
                            string strowner = "", strAddress = "", strCity = "";
                            string Record = "";


                            IWebElement multiaddress = driver.FindElement(By.XPath("//*[@id='body']/form[2]/table/tbody/tr[3]/td/table/tbody"));

                            IList <IWebElement> multiRow = multiaddress.FindElements(By.TagName("tr"));
                            IList <IWebElement> multiTD;
                            foreach (IWebElement multi in multiRow)
                            {
                                multiTD = multi.FindElements(By.TagName("td"));
                                if (multi.Text.Contains(address.ToUpper()) && multiTD.Count != 0 && multi.Text.Trim() != "" && !multi.Text.Contains("Search Results") && !multi.Text.Contains("Property Location"))
                                {
                                    Strownername = multiTD[1].Text;

                                    parcelNumber = multiTD[0].Text.Trim();
                                    PropertyAdd  = multiTD[2].Text + " " + multiTD[3].Text;

                                    string multidetails = Strownername + "~" + PropertyAdd;
                                    gc.insert_date(orderNumber, parcelNumber, 1757, multidetails, 1, DateTime.Now);
                                    Max++;
                                }
                                if (multiTD.Count != 0 && multiRow.Count > 25 && Max >= 25)
                                {
                                    HttpContext.Current.Session["multiparcel_DouglasNV_Maximum"] = "Maximum";
                                    driver.Quit();
                                    return("Maximum");
                                }
                            }
                            if (Max > 1 && Max < 25)
                            {
                                HttpContext.Current.Session["multiparcel_DouglasNV"] = "Yes";
                                driver.Quit();
                                return("MultiParcel");
                            }
                            if (Max == 1)
                            {
                                IWebElement multiaddress1 = driver.FindElement(By.XPath("//*[@id='body']/form[2]/table/tbody/tr[3]/td/table/tbody"));

                                IList <IWebElement> multiRow1 = multiaddress1.FindElements(By.TagName("tr"));
                                IList <IWebElement> multiTD1;
                                foreach (IWebElement multi in multiRow1)
                                {
                                    multiTD1 = multi.FindElements(By.TagName("td"));
                                    if (multi.Text.Contains(address.ToUpper()) && multiTD1.Count != 0 && multi.Text.Trim() != "" && !multi.Text.Contains("Search Results") && !multi.Text.Contains("Property Location"))
                                    {
                                        Strownername = multiTD1[1].Text;
                                        parcelNumber = multiTD1[0].Text.Trim();
                                        PropertyAdd  = multiTD1[2].Text + " " + multiTD1[3].Text;

                                        string nparcel = parcelNumber.Replace("-", "");
                                        string url     = "http://assessor-search.douglasnv.us:1401/cgi-bin/asw101?Parcel=" + nparcel + "&aori=a";
                                        driver.Navigate().GoToUrl(url);
                                        Thread.Sleep(4000);
                                        break;
                                    }
                                }
                            }
                            if (Max == 0)
                            {
                                HttpContext.Current.Session["Zero_DouglasNV"] = "Zero";
                                driver.Quit();
                                return("No Data Found");
                            }
                        }
                        catch { }
                    }


                    else if (searchType == "parcel")
                    {
                        parcelNumber = parcelNumber.Replace("-", "");
                        driver.FindElement(By.XPath("//*[@id='asw100parcels']/input[1]")).SendKeys(parcelNumber);
                        Thread.Sleep(3000);
                        gc.CreatePdf(orderNumber, parcelNumber, "Parcel search", driver, "NV", "Douglas");
                        try
                        {
                            driver.FindElement(By.XPath("//*[@id='body']/form[2]/table/tbody/tr/td/table/tbody/tr[10]/td[5]/div/input")).SendKeys(Keys.Enter);
                            Thread.Sleep(3000);
                            gc.CreatePdf(orderNumber, parcelNumber, "Parcel search Result", driver, "NV", "Douglas");
                        }
                        catch { }
                        try
                        {
                            driver.FindElement(By.XPath("//*[@id='body']/form[2]/table/tbody/tr[3]/td/table/tbody/tr[3]/td[1]/div/a")).Click();
                            Thread.Sleep(4000);
                        }
                        catch { }
                        try
                        {
                            int    Max = 0;
                            string strowner = "", strAddress = "", strCity = "";
                            string Record = "";


                            IWebElement multiaddress = driver.FindElement(By.XPath("//*[@id='body']/form[2]/table/tbody/tr[3]/td/table/tbody"));

                            IList <IWebElement> multiRow = multiaddress.FindElements(By.TagName("tr"));
                            IList <IWebElement> multiTD;
                            foreach (IWebElement multi in multiRow)
                            {
                                multiTD = multi.FindElements(By.TagName("td"));
                                if (multi.Text.Contains(address.ToUpper()) && multiTD.Count != 0 && multi.Text.Trim() != "" && !multi.Text.Contains("Search Results") && !multi.Text.Contains("Property Location") && multi.Text.Contains("No results found"))
                                {
                                    HttpContext.Current.Session["Zero_DouglasNV"] = "Zero";
                                    driver.Quit();
                                    return("No Data Found");
                                }
                            }
                        }
                        catch { }
                    }

                    if (searchType == "ownername")
                    {
                        driver.FindElement(By.XPath("//*[@id='asw100name']/input")).SendKeys(ownername);
                        Thread.Sleep(3000);

                        gc.CreatePdf_WOP(orderNumber, "OwnerName search", driver, "NV", "Douglas");
                        driver.FindElement(By.XPath("//*[@id='body']/form[2]/table/tbody/tr/td/table/tbody/tr[10]/td[5]/div/input")).Click();
                        Thread.Sleep(4000);

                        try
                        {
                            int    Max = 0;
                            string strowner = "", strAddress = "", strCity = "";
                            string Record = "";


                            IWebElement multiaddress = driver.FindElement(By.XPath("//*[@id='body']/form[2]/table/tbody/tr[3]/td/table/tbody"));

                            IList <IWebElement> multiRow = multiaddress.FindElements(By.TagName("tr"));
                            IList <IWebElement> multiTD;
                            foreach (IWebElement multi in multiRow)
                            {
                                multiTD = multi.FindElements(By.TagName("td"));
                                if (multi.Text.Contains(address.ToUpper()) && multiTD.Count != 0 && multi.Text.Trim() != "" && !multi.Text.Contains("Search Results") && !multi.Text.Contains("Property Location"))
                                {
                                    Strownername = multiTD[1].Text;

                                    parcelNumber = multiTD[0].Text.Trim();
                                    PropertyAdd  = multiTD[2].Text + " " + multiTD[3].Text;

                                    string multidetails = Strownername + "~" + PropertyAdd;
                                    gc.insert_date(orderNumber, parcelNumber, 1757, multidetails, 1, DateTime.Now);
                                    Max++;
                                }
                                if (multiTD.Count != 0 && multiRow.Count > 25 && Max >= 25)
                                {
                                    HttpContext.Current.Session["multiparcel_DouglasNV_Maximum"] = "Maximum";
                                    driver.Quit();
                                    return("Maximum");
                                }
                            }
                            if (Max > 1 && Max < 25)
                            {
                                HttpContext.Current.Session["multiparcel_DouglasNV"] = "Yes";
                                driver.Quit();
                                return("MultiParcel");
                            }
                            if (Max == 1)
                            {
                                IWebElement multiaddress1 = driver.FindElement(By.XPath("//*[@id='body']/form[2]/table/tbody/tr[3]/td/table/tbody"));

                                IList <IWebElement> multiRow1 = multiaddress1.FindElements(By.TagName("tr"));
                                IList <IWebElement> multiTD1;
                                foreach (IWebElement multi in multiRow1)
                                {
                                    multiTD1 = multi.FindElements(By.TagName("td"));
                                    if (multi.Text.Contains(address.ToUpper()) && multiTD1.Count != 0 && multi.Text.Trim() != "" && !multi.Text.Contains("Search Results") && !multi.Text.Contains("Property Location"))
                                    {
                                        Strownername = multiTD1[1].Text;
                                        parcelNumber = multiTD1[0].Text.Trim();
                                        PropertyAdd  = multiTD1[2].Text + " " + multiTD1[3].Text;

                                        string nparcel = parcelNumber.Replace("-", "");
                                        string url     = "http://assessor-search.douglasnv.us:1401/cgi-bin/asw101?Parcel=" + nparcel + "&aori=a";
                                        driver.Navigate().GoToUrl(url);
                                        Thread.Sleep(4000);
                                        break;
                                    }
                                }
                            }
                            if (Max == 0)
                            {
                                HttpContext.Current.Session["Zero_DouglasNV"] = "Zero";
                                driver.Quit();
                                return("No Data Found");
                            }
                        }
                        catch { }
                    }


                    //property details

                    string MailingAddress = "", Town = "", District = "", AssessedOwnerName = "";
                    string LegalOwnerName = "", PropertyAddress = "", Acres = "", YearBuilt = "";


                    parcelNumber = driver.FindElement(By.XPath("//*[@id='body']/form[2]/table[2]/tbody/tr[1]/td/div")).Text.Replace("Parcel Detail for Parcel #", "").Trim();

                    PropertyAddress = driver.FindElement(By.XPath("//*[@id='body']/form[2]/table[2]/tbody/tr[3]/td[1]/table/tbody/tr[2]/td[2]/div")).Text;
                    Town            = driver.FindElement(By.XPath("//*[@id='body']/form[2]/table[2]/tbody/tr[3]/td[1]/table/tbody/tr[3]/td[2]/div")).Text;
                    District        = driver.FindElement(By.XPath("//*[@id='body']/form[2]/table[2]/tbody/tr[3]/td[1]/table/tbody/tr[4]/td[2]/div")).Text;

                    AssessedOwnerName = driver.FindElement(By.XPath("//*[@id='body']/form[2]/table[2]/tbody/tr[3]/td[2]/table/tbody/tr[2]/td[2]/div")).Text;
                    LegalOwnerName    = driver.FindElement(By.XPath("//*[@id='body']/form[2]/table[2]/tbody/tr[3]/td[2]/table/tbody/tr[4]/td[2]/div")).Text;
                    MailingAddress    = driver.FindElement(By.XPath("//*[@id='body']/form[2]/table[2]/tbody/tr[3]/td[2]/table/tbody/tr[3]/td[2]/div")).Text;
                    try
                    {
                        YearBuilt = driver.FindElement(By.XPath("//*[@id='body']/form[2]/table[2]/tbody/tr[4]/td[2]/table/tbody/tr[9]/td[2]/div")).Text;
                    }
                    catch { }
                    //try
                    //{
                    //    if (YearBuilt == "")
                    //    {
                    //        YearBuilt = driver.FindElement(By.XPath("/html/body/table[15]/tbody/tr[2]/td[1]/p")).Text;
                    //    }
                    //}
                    //catch { }
                    string propertydetails = PropertyAddress + "~" + Town + "~" + District + "~" + AssessedOwnerName + "~" + MailingAddress + "~" + LegalOwnerName + "~" + YearBuilt;
                    gc.insert_date(orderNumber, parcelNumber, 1765, propertydetails, 1, DateTime.Now);

                    gc.CreatePdf(orderNumber, parcelNumber, "Property Details", driver, "NV", "Douglas");

                    // Assessment Details - (Assessed Valuation)

                    try
                    {
                        string              Assyear = "", Assyear1 = "", Assyear2 = "", Assesstype = "";
                        IWebElement         Assessmentdetails   = driver.FindElement(By.XPath("//*[@id='body']/form[2]/table[2]/tbody/tr[5]/td[1]/table/tbody"));
                        IList <IWebElement> TRAssessmentdetails = Assessmentdetails.FindElements(By.TagName("tr"));
                        IList <IWebElement> THAssessmentdetails = Assessmentdetails.FindElements(By.TagName("th"));
                        IList <IWebElement> TDAssessmentdetails;
                        foreach (IWebElement row in TRAssessmentdetails)
                        {
                            TDAssessmentdetails = row.FindElements(By.TagName("td"));
                            if (!row.Text.Contains("Assessed Valuation") && row.Text.Trim() != "")
                            {
                                if (TDAssessmentdetails.Count != 0 && !row.Text.Contains("Increased (New) Values"))
                                {
                                    Assesstype += TDAssessmentdetails[0].Text.Replace("Values", "Year") + "~";
                                    Assyear    += TDAssessmentdetails[1].Text + "~";
                                    Assyear1   += TDAssessmentdetails[2].Text + "~";
                                    Assyear2   += TDAssessmentdetails[3].Text + "~";
                                }
                                if (TDAssessmentdetails.Count != 0 && row.Text.Contains("Increased (New) Values"))
                                {
                                    break;
                                }
                            }
                        }

                        DBconnection dbconn = new DBconnection();
                        dbconn.ExecuteQuery("update data_field_master set Data_Fields_Text='" + Assesstype.Remove(Assesstype.Length - 1, 1) + "' where Id = '" + 1766 + "'");
                        gc.insert_date(orderNumber, parcelNumber, 1766, Assyear.Remove(Assyear.Length - 1, 1), 1, DateTime.Now);
                        gc.insert_date(orderNumber, parcelNumber, 1766, Assyear1.Remove(Assyear1.Length - 1, 1), 1, DateTime.Now);
                        gc.insert_date(orderNumber, parcelNumber, 1766, Assyear2.Remove(Assyear2.Length - 1, 1), 1, DateTime.Now);
                    }
                    catch { }

                    // Assessment details - (Taxable Valuation)

                    try
                    {
                        string              taxyear = "", taxyear1 = "", taxyear2 = "", valuetype = "";
                        IWebElement         Assessmentdetails   = driver.FindElement(By.XPath("//*[@id='body']/form[2]/table[2]/tbody/tr[5]/td[2]/table/tbody"));
                        IList <IWebElement> TRAssessmentdetails = Assessmentdetails.FindElements(By.TagName("tr"));
                        IList <IWebElement> THAssessmentdetails = Assessmentdetails.FindElements(By.TagName("th"));
                        IList <IWebElement> TDAssessmentdetails;
                        foreach (IWebElement row in TRAssessmentdetails)
                        {
                            TDAssessmentdetails = row.FindElements(By.TagName("td"));
                            if (!row.Text.Contains("Taxable Valuation") && row.Text.Trim() != "")
                            {
                                if (TDAssessmentdetails.Count != 0 && !row.Text.Contains("Increased (New) Values"))
                                {
                                    valuetype += TDAssessmentdetails[0].Text.Replace("Values", "Year") + "~";
                                    taxyear   += TDAssessmentdetails[1].Text + "~";
                                    taxyear1  += TDAssessmentdetails[2].Text + "~";
                                    taxyear2  += TDAssessmentdetails[3].Text + "~";
                                }
                                if (TDAssessmentdetails.Count != 0 && row.Text.Contains("Increased (New) Values"))
                                {
                                    break;
                                }
                            }
                        }

                        DBconnection dbconn = new DBconnection();
                        dbconn.ExecuteQuery("update data_field_master set Data_Fields_Text='" + valuetype.Remove(valuetype.Length - 1, 1) + "' where Id = '" + 1767 + "'");
                        gc.insert_date(orderNumber, parcelNumber, 1767, taxyear.Remove(taxyear.Length - 1, 1), 1, DateTime.Now);
                        gc.insert_date(orderNumber, parcelNumber, 1767, taxyear1.Remove(taxyear1.Length - 1, 1), 1, DateTime.Now);
                        gc.insert_date(orderNumber, parcelNumber, 1767, taxyear2.Remove(taxyear2.Length - 1, 1), 1, DateTime.Now);
                    }
                    catch { }


                    // Tax Information Details
                    string taxAuth = "", taxauth1 = "", taxauth2 = "", taxauth3 = "";
                    try
                    {
                        driver.Navigate().GoToUrl("https://cltr.douglasnv.us/");
                        Thread.Sleep(5000);
                        taxauth1 = driver.FindElement(By.XPath("//*[@id='text-16']/div/h4")).Text;
                        taxauth2 = driver.FindElement(By.XPath("//*[@id='text-16']/div/div/p[1]")).Text.Replace("MINDEN:", "").Trim();
                        taxauth3 = driver.FindElement(By.XPath("//*[@id='text-16']/div/div/p[3]")).Text.Replace("Treasurer:", "").Replace("(map)", "").Trim();
                        taxAuth  = taxauth1 + " " + taxauth2 + " " + taxauth3;
                        gc.CreatePdf(orderNumber, parcelNumber, "Taxing Authority", driver, "NV", "Douglas");
                    }
                    catch { }

                    driver.Navigate().GoToUrl("https://cltr.douglasnv.us/online-payments/property-taxes/");
                    Thread.Sleep(5000);
                    var Select1         = driver.FindElement(By.XPath("//*[@id='filterBy']"));
                    var selectElement11 = new SelectElement(Select1);
                    selectElement11.SelectByText("Parcel Number");

                    driver.FindElement(By.XPath("//*[@id='searchFor']")).SendKeys(parcelNumber);
                    gc.CreatePdf(orderNumber, parcelNumber, "Tax Search", driver, "NV", "Douglas");

                    driver.FindElement(By.Id("buttonSearch")).Click();
                    Thread.Sleep(4000);
                    gc.CreatePdf(orderNumber, parcelNumber, "Tax Search Result", driver, "NV", "Douglas");

                    driver.FindElement(By.XPath("//*[@id='content']/div/div[2]/div/table/tbody/tr/td[4]/input")).Click();
                    Thread.Sleep(4000);

                    gc.CreatePdf(orderNumber, parcelNumber, "Current Tax Details", driver, "NV", "Douglas");
                    string strownerName = "", PropAddress = "", Taxyear = "", AccountBalance = "";

                    strownerName   = driver.FindElement(By.XPath("//*[@id='content']/div/div[3]/div[2]/strong")).Text;
                    PropAddress    = driver.FindElement(By.XPath("//*[@id='content']/div/div[4]/div[2]/strong")).Text;
                    Taxyear        = driver.FindElement(By.XPath("//*[@id='content']/div/div[2]/div/h4")).Text.Replace("Tax Summary for", "").Trim();
                    AccountBalance = driver.FindElement(By.XPath("//*[@id='content']/div/div[3]/div[3]/strong")).Text;

                    try
                    {
                        string TaxInfodetails = strownerName + "~" + PropAddress + "~" + Taxyear + "~" + AccountBalance + "~" + taxAuth;
                        gc.insert_date(orderNumber, parcelNumber, 1770, TaxInfodetails, 1, DateTime.Now);
                    }
                    catch { }

                    // Current tax Year Details
                    try
                    {
                        IWebElement         CurrentTax   = driver.FindElement(By.XPath("//*[@id='content']/div"));
                        IList <IWebElement> TRCurrentTax = CurrentTax.FindElements(By.TagName("div"));
                        IList <IWebElement> THCurrentTax = CurrentTax.FindElements(By.TagName("div"));
                        IList <IWebElement> TDCurrentTax;
                        foreach (IWebElement row in TRCurrentTax)
                        {
                            TDCurrentTax = row.FindElements(By.TagName("div"));
                            if (TDCurrentTax.Count != 0 && !row.Text.Contains("Disposition") && row.Text.Trim() != "" && TDCurrentTax.Count == 6)
                            {
                                string CurrentTaxdetails = TDCurrentTax[0].Text + "~" + TDCurrentTax[1].Text + "~" + TDCurrentTax[2].Text + "~" + TDCurrentTax[3].Text + "~" + TDCurrentTax[4].Text;
                                gc.insert_date(orderNumber, parcelNumber, 1771, CurrentTaxdetails, 1, DateTime.Now);
                            }
                            if (row.Text.Contains("Penalty") && row.Text.Trim() != "" && TDCurrentTax.Count == 3)
                            {
                                string CurrentTaxdetails = "" + "~" + TDCurrentTax[0].Text + "~" + TDCurrentTax[1].Text + "~" + "" + "~" + "";
                                gc.insert_date(orderNumber, parcelNumber, 1771, CurrentTaxdetails, 1, DateTime.Now);
                            }
                        }
                    }
                    catch { }

                    try
                    {
                        driver.FindElement(By.Id("buttonHistory")).Click();
                        Thread.Sleep(6000);
                        gc.CreatePdf(orderNumber, parcelNumber, "Payment History", driver, "NV", "Douglas");
                    }
                    catch { }

                    // Tax Payment History Details
                    try
                    {
                        IWebElement         TaxPayment   = driver.FindElement(By.XPath("/html/body/div[2]/div/div/div[2]/div/div/table/tbody"));
                        IList <IWebElement> TRTaxPayment = TaxPayment.FindElements(By.TagName("tr"));
                        IList <IWebElement> THTaxPayment = TaxPayment.FindElements(By.TagName("th"));
                        IList <IWebElement> TDTaxPayment;
                        foreach (IWebElement row in TRTaxPayment)
                        {
                            TDTaxPayment = row.FindElements(By.TagName("td"));
                            if (TDTaxPayment.Count != 0 && !row.Text.Contains("PENALTY") && row.Text.Trim() != "")
                            {
                                string TaxPaymentdetails = TDTaxPayment[0].Text + "~" + TDTaxPayment[1].Text + "~" + TDTaxPayment[2].Text + "~" + TDTaxPayment[3].Text;
                                gc.insert_date(orderNumber, parcelNumber, 1772, TaxPaymentdetails, 1, DateTime.Now);
                            }
                        }
                    }
                    catch { }


                    try
                    {
                        driver.FindElement(By.XPath("/html/body/div[2]/div/div/div[3]/button")).Click();
                        Thread.Sleep(4000);
                    }
                    catch { }

                    // AMG Details
                    try
                    {
                        driver.Navigate().GoToUrl("https://amgnv.com/parcelsearch_non_pop1.asp");
                        Thread.Sleep(5000);
                        string strparcel = parcelNumber.Replace("-", "");
                        driver.FindElement(By.XPath("/html/body/table[3]/tbody/tr/td[6]/table/tbody/tr[2]/td[2]/p/table[2]/tbody/tr/td/table/tbody/tr[2]/td[1]/form/center/b/input")).SendKeys(strparcel);
                        gc.CreatePdf(orderNumber, parcelNumber, "AMG Details Search", driver, "NV", "Douglas");
                        driver.FindElement(By.XPath("/html/body/table[3]/tbody/tr/td[6]/table/tbody/tr[2]/td[2]/p/table[2]/tbody/tr/td/table/tbody/tr[2]/td[1]/form/center/b/font/font/input")).Click();
                        Thread.Sleep(3000);
                        gc.CreatePdf(orderNumber, parcelNumber, "AMG Details Search Result", driver, "NV", "Douglas");
                    }
                    catch { }
                    string AmgBigdata = "";
                    try
                    {
                        AmgBigdata = driver.FindElement(By.XPath("/html/body/table[3]/tbody/tr/td[6]/table/tbody/tr[2]/td[2]/p/table[2]/tbody/tr/td/b/font")).Text;
                    }
                    catch { }
                    if (!AmgBigdata.Contains("No Records were found in the database"))
                    {
                        try
                        {
                            driver.FindElement(By.XPath("/html/body/table[3]/tbody/tr/td[6]/table/tbody/tr[2]/td[2]/p/font[1]/table/tbody/tr[2]/td[4]/div/font/a")).Click();
                            Thread.Sleep(4000);
                            gc.CreatePdf(orderNumber, parcelNumber, "AMG Details Info", driver, "NV", "Douglas");
                        }
                        catch { }

                        string District_AMG_ID = "", OwnerName = "", status = "", Unbilled_Principal = "", ProAdd = "", LegalDesc = "", OriginalAssess = "";
                        string PayOff = "", MailingDate = "", DueDate = "", FinalPayment = "", Checks_payable = "";

                        District_AMG_ID    = driver.FindElement(By.XPath("/html/body/table[3]/tbody/tr/td[6]/table/tbody/tr[2]/td[2]/table[3]/tbody/tr[3]/td[2]/center/font")).Text;
                        OwnerName          = driver.FindElement(By.XPath("/html/body/table[3]/tbody/tr/td[6]/table/tbody/tr[2]/td[2]/table[3]/tbody/tr[3]/td[3]/font")).Text;
                        status             = driver.FindElement(By.XPath("/html/body/table[3]/tbody/tr/td[6]/table/tbody/tr[2]/td[2]/table[3]/tbody/tr[3]/td[4]")).Text;
                        Unbilled_Principal = driver.FindElement(By.XPath("/html/body/table[3]/tbody/tr/td[6]/table/tbody/tr[2]/td[2]/table[3]/tbody/tr[3]/td[5]/div/font")).Text;
                        ProAdd             = driver.FindElement(By.XPath("/html/body/table[3]/tbody/tr/td[6]/table/tbody/tr[2]/td[2]/table[4]/tbody/tr[2]/td[1]/font")).Text;
                        LegalDesc          = driver.FindElement(By.XPath("/html/body/table[3]/tbody/tr/td[6]/table/tbody/tr[2]/td[2]/table[4]/tbody/tr[3]/td/font")).Text.Trim();
                        OriginalAssess     = driver.FindElement(By.XPath("/html/body/table[3]/tbody/tr/td[6]/table/tbody/tr[2]/td[2]/table[4]/tbody/tr[2]/td[2]/center/font")).Text;
                        PayOff             = driver.FindElement(By.XPath("/html/body/table[3]/tbody/tr/td[6]/table/tbody/tr[2]/td[2]/table[4]/tbody/tr[2]/td[3]/center/font/a")).Text;
                        MailingDate        = driver.FindElement(By.XPath("/html/body/table[3]/tbody/tr/td[6]/table/tbody/tr[2]/td[2]/table[8]/tbody/tr[1]/td[1]/font")).Text.Replace("Mailing Date:", "").Trim();
                        DueDate            = driver.FindElement(By.XPath("/html/body/table[3]/tbody/tr/td[6]/table/tbody/tr[2]/td[2]/table[8]/tbody/tr[2]/td[1]/font")).Text.Replace("Due Dates:", "").Trim();
                        FinalPayment       = driver.FindElement(By.XPath("/html/body/table[3]/tbody/tr/td[6]/table/tbody/tr[2]/td[2]/table[8]/tbody/tr[3]/td/font")).Text.Replace(":", "").Trim();

                        Checks_payable = driver.FindElement(By.XPath("/html/body/table[3]/tbody/tr/td[6]/table/tbody/tr[2]/td[2]/table[8]/tbody/tr[2]/td[2]/table/tbody/tr/td[2]/font")).Text.Trim();

                        string AMGdetails = District_AMG_ID + "~" + OwnerName + "~" + status + "~" + Unbilled_Principal + "~" + ProAdd + "~" + LegalDesc + "~" + OriginalAssess + "~" + PayOff + "~" + MailingDate + "~" + DueDate + "~" + FinalPayment + "~" + Checks_payable;
                        gc.insert_date(orderNumber, parcelNumber, 1773, AMGdetails, 1, DateTime.Now);

                        // AMG Due Details


                        try
                        {
                            IWebElement         AMGDueDetails   = driver.FindElement(By.XPath("/html/body/table[3]/tbody/tr/td[6]/table/tbody/tr[2]/td[2]/table[6]/tbody"));
                            IList <IWebElement> TRAMGDueDetails = AMGDueDetails.FindElements(By.TagName("tr"));
                            IList <IWebElement> THAMGDueDetails = AMGDueDetails.FindElements(By.TagName("th"));
                            IList <IWebElement> TDAMGDueDetails;
                            foreach (IWebElement row in TRAMGDueDetails)
                            {
                                TDAMGDueDetails = row.FindElements(By.TagName("td"));
                                if (TDAMGDueDetails.Count != 0 && !row.Text.Contains("Total Due") && row.Text.Trim() != "" && TDAMGDueDetails.Count == 6)
                                {
                                    string AMGDuedetails = TDAMGDueDetails[0].Text + "~" + TDAMGDueDetails[1].Text + "~" + TDAMGDueDetails[2].Text + "~" + TDAMGDueDetails[3].Text + "~" + TDAMGDueDetails[4].Text + "~" + TDAMGDueDetails[5].Text;
                                    gc.insert_date(orderNumber, parcelNumber, 1774, AMGDuedetails, 1, DateTime.Now);
                                }
                            }
                        }
                        catch { }
                    }


                    TaxTime = DateTime.Now.ToString("HH:mm:ss");

                    LastEndTime = DateTime.Now.ToString("HH:mm:ss");
                    gc.insert_TakenTime(orderNumber, "NV", "Douglas", StartTime, AssessmentTime, TaxTime, CitytaxTime, LastEndTime);

                    driver.Quit();
                    gc.mergpdf(orderNumber, "NV", "Douglas");
                    return("Data Inserted Successfully");
                }

                catch (Exception ex)
                {
                    driver.Quit();
                    throw ex;
                }
            }
        }
        public string FTP_ThurstonWA(string streetNo, string streetName, string direction, string streetType, string unitNumber, string parcelNumber, string ownerName, string searchType, string orderNumber)
        {
            GlobalClass.global_orderNo             = orderNumber;
            HttpContext.Current.Session["orderNo"] = orderNumber;
            GlobalClass.global_parcelNo            = parcelNumber;

            string StartTime = "", AssessmentTime = "", TaxTime = "", CitytaxTime = "", LastEndTime = "";
            string Taxing_Authority = "";
            var    driverService    = PhantomJSDriverService.CreateDefaultService();

            driverService.HideCommandPromptWindow = true;
            // driver = new PhantomJSDriver();
            //driver = new ChromeDriver();
            string address = "";

            using (driver = new PhantomJSDriver())
            {
                try
                {
                    StartTime = DateTime.Now.ToString("HH:mm:ss");
                    driver.Navigate().GoToUrl("http://tcproperty.co.thurston.wa.us/propsql/front.asp");
                    Thread.Sleep(3000);
                    driver.FindElement(By.XPath("/html/body/div[2]/form/input[2]")).Click();
                    StartTime = DateTime.Now.ToString("HH:mm:ss");

                    if (direction != "")
                    {
                        address = streetNo + " " + direction + " " + streetName + " " + streetType + " " + unitNumber;
                    }
                    else
                    {
                        address = streetNo + " " + streetName + " " + streetType + " " + unitNumber;
                    }

                    if (searchType == "titleflex")
                    {
                        gc.TitleFlexSearch(orderNumber, "", ownerName, address.Trim(), "WA", "Thurston");
                        if ((HttpContext.Current.Session["TitleFlex_Search"] != null && HttpContext.Current.Session["TitleFlex_Search"].ToString() == "Yes"))
                        {
                            driver.Quit();
                            return("MultiParcel");
                        }
                        else if (HttpContext.Current.Session["titleparcel"].ToString() == "")
                        {
                            HttpContext.Current.Session["Nodata_ThurstonWA"] = "Yes";
                            driver.Quit();
                            return("No Data Found");
                        }
                        parcelNumber = HttpContext.Current.Session["titleparcel"].ToString();
                        searchType   = "parcel";
                    }
                    if (searchType == "address")
                    {
                        driver.FindElement(By.XPath("/html/body/div/form/table/tbody/tr/td/table[2]/tbody/tr/td/table/tbody/tr[2]/td/table/tbody/tr[3]/td[2]/input")).SendKeys(streetNo);
                        driver.FindElement(By.XPath("/html/body/div/form/table/tbody/tr/td/table[2]/tbody/tr/td/table/tbody/tr[2]/td/table/tbody/tr[4]/td[2]/input")).SendKeys(streetName);
                        Thread.Sleep(2000);
                        gc.CreatePdf_WOP(orderNumber, "Address Search Input", driver, "WA", "Thurston");
                        driver.FindElement(By.XPath("/html/body/div/form/table/tbody/tr/td/table[3]/tbody/tr/td/table/tbody/tr[2]/td/table/tbody/tr/td[1]/input")).SendKeys(Keys.Enter);
                        gc.CreatePdf_WOP(orderNumber, "Address Search result", driver, "WA", "Thurston");
                        //Multiparcel
                        try
                        {
                            int                 owner       = 0;
                            IWebElement         Imultitable = driver.FindElement(By.XPath("/html/body/div/table[2]/tbody"));
                            IList <IWebElement> ImutiRow    = Imultitable.FindElements(By.TagName("tr"));
                            IList <IWebElement> ImultiTD;
                            foreach (IWebElement multi in ImutiRow)
                            {
                                ImultiTD = multi.FindElements(By.TagName("td"));
                                if (ImultiTD.Count != 0 && multi.Text.Contains("Owner"))
                                {
                                    string[] ownernamesplit  = ImultiTD[4].Text.Split(' ');
                                    string   parcelnumber    = ownernamesplit[0].Trim();
                                    string   strmultiDetails = ImultiTD[0].Text + "~" + ImultiTD[2].Text;
                                    gc.insert_date(orderNumber, parcelnumber, 1578, strmultiDetails, 1, DateTime.Now);
                                    owner++;
                                }
                            }
                            if (owner == 1)
                            {
                                driver.FindElement(By.XPath("/html/body/div/table[2]/tbody/tr[2]/td[5]/a[1]")).Click();
                                Thread.Sleep(2000);
                            }
                            if (owner > 2 && owner < 25)
                            {
                                HttpContext.Current.Session["multiParcel_ThurstonWA"] = "Yes";
                                driver.Quit();
                                return("MultiParcel");
                            }
                            if (owner > 25)
                            {
                                HttpContext.Current.Session["multiParcel_ThurstonWA_Maximum"] = "Maximum";
                                return("Maximum");
                            }
                        }
                        catch { }
                        gc.CreatePdf(orderNumber, parcelNumber, "Basic", driver, "WA", "Thurston");
                        try
                        {
                            //No Data Found
                            string nodata = driver.FindElement(By.XPath("/html/body/div/table[2]/tbody/tr[1]/td")).Text;
                            if (nodata.Contains("No records match your search criteria."))
                            {
                                HttpContext.Current.Session["Nodata_ThurstonWA"] = "Yes";
                                driver.Quit();
                                return("No Data Found");
                            }
                        }
                        catch { }
                    }
                    if (searchType == "parcel")
                    {
                        driver.FindElement(By.XPath("/html/body/div/form/table/tbody/tr/td/table[1]/tbody/tr/td/table/tbody/tr[2]/td/table/tbody/tr/td[2]/input")).SendKeys(parcelNumber);
                        Thread.Sleep(2000);
                        gc.CreatePdf(orderNumber, parcelNumber, "Parcel Search Input", driver, "WA", "Thurston");
                        driver.FindElement(By.XPath("/html/body/div/form/table/tbody/tr/td/table[3]/tbody/tr/td/table/tbody/tr[2]/td/table/tbody/tr/td[1]/input")).SendKeys(Keys.Enter);
                        gc.CreatePdf(orderNumber, parcelNumber, "Parcel Search result", driver, "WA", "Thurston");
                    }
                    string Lastname = "", Firstname = "";
                    if (searchType == "ownername")
                    {
                        string[] ownernamesplit = ownerName.Split(' ');
                        try
                        {
                            Lastname  = ownernamesplit[0];
                            Firstname = ownernamesplit[1];
                        }
                        catch { }
                        driver.FindElement(By.XPath("/html/body/div/form/table/tbody/tr/td/table[2]/tbody/tr/td/table/tbody/tr[2]/td/table/tbody/tr[1]/td[2]/input")).SendKeys(Lastname);
                        driver.FindElement(By.Id("ffname")).SendKeys(Firstname);
                        Thread.Sleep(2000);
                        gc.CreatePdf_WOP(orderNumber, "Ownername Search Input", driver, "WA", "Thurston");
                        driver.FindElement(By.XPath("/html/body/div/form/table/tbody/tr/td/table[3]/tbody/tr/td/table/tbody/tr[2]/td/table/tbody/tr/td[1]/input")).SendKeys(Keys.Enter);
                        gc.CreatePdf_WOP(orderNumber, "Ownername Search result", driver, "WA", "Thurston");

                        //Multiparcel
                        try
                        {
                            int                 owner       = 0;
                            IWebElement         Imultitable = driver.FindElement(By.XPath("/html/body/div/table[2]/tbody"));
                            IList <IWebElement> ImutiRow    = Imultitable.FindElements(By.TagName("tr"));
                            IList <IWebElement> ImultiTD;
                            foreach (IWebElement multi in ImutiRow)
                            {
                                ImultiTD = multi.FindElements(By.TagName("td"));
                                if (ImultiTD.Count != 0 && multi.Text.Contains("Owner"))
                                {
                                    string[] ownernamesplit1 = ImultiTD[4].Text.Split(' ');
                                    string   parcelnumber    = ownernamesplit1[0].Trim();
                                    string   strmultiDetails = ImultiTD[0].Text + "~" + ImultiTD[2].Text;
                                    gc.insert_date(orderNumber, parcelnumber, 1578, strmultiDetails, 1, DateTime.Now);
                                    owner++;
                                }
                            }
                            if (owner == 1)
                            {
                                driver.FindElement(By.XPath("/html/body/div/table[2]/tbody/tr[2]/td[5]/a[1]")).Click();
                                Thread.Sleep(2000);
                            }

                            if (owner > 2 && owner < 25)
                            {
                                HttpContext.Current.Session["multiParcel_ThurstonWA"] = "Yes";
                                driver.Quit();
                                return("MultiParcel");
                            }
                            if (owner > 25)
                            {
                                HttpContext.Current.Session["multiParcel_ThurstonWA_Maximum"] = "Maximum";
                                return("Maximum");
                            }
                        }
                        catch { }
                        gc.CreatePdf(orderNumber, parcelNumber, "Basic", driver, "WA", "Thurston");
                        try
                        {
                            //No Data Found
                            string nodata = driver.FindElement(By.XPath("/html/body/div/table[2]/tbody/tr[1]/td")).Text;
                            if (nodata.Contains("No records match your search criteria."))
                            {
                                HttpContext.Current.Session["Nodata_ThurstonWA"] = "Yes";
                                driver.Quit();
                                return("No Data Found");
                            }
                        }
                        catch { }
                    }
                    //Property Details
                    //Basic Info
                    string TaxAuthority = "";
                    try
                    {
                        driver.FindElement(By.XPath("/html/body/div/table[2]/tbody/tr[2]/td[5]/a[1]")).Click();
                        Thread.Sleep(2000);
                    }
                    catch { }
                    int    ownerinfo = 0;
                    string Parcelnumber = "", Role = "", Pct = "", Name = "", Name1 = "", Name2 = "", Street = "", City = "", State = "", Zip = "", SitusAddress = "", AbbreviatedLegal = "", SectTownRange = "", Size = "", UseCode = "", TCANumber = "", Taxable = "", Neighborhood = "", PropertyType = "", YearBuilt = "", LotAcreage = "";
                    Parcelnumber = driver.FindElement(By.XPath("/html/body/div[1]/table[1]/tbody/tr/td/table/tbody/tr/td/table/tbody/tr/td[2]/table/tbody/tr[2]/td/b")).Text.Replace("Property:", "");
                    //Structures
                    gc.CreatePdf(orderNumber, Parcelnumber, "BasicBasic", driver, "WA", "Thurston");
                    IWebElement         IPropertyDetails = driver.FindElement(By.XPath("/html/body/div[2]/table/tbody/tr/td/table[1]/tbody/tr/td/table/tbody/tr[2]/td/table/tbody"));
                    IList <IWebElement> IPropertyRow     = IPropertyDetails.FindElements(By.TagName("tr"));
                    IList <IWebElement> IPropertyTD;
                    foreach (IWebElement Propertydet in IPropertyRow)
                    {
                        IPropertyTD = Propertydet.FindElements(By.TagName("td"));
                        if (IPropertyTD.Count != 0 && IPropertyTD.Count == 3 && Propertydet.Text.Contains("Owner"))
                        {
                            Role  = IPropertyTD[0].Text;
                            Pct   = IPropertyTD[1].Text;
                            Name1 = IPropertyTD[2].Text;
                        }
                        if (IPropertyTD.Count != 0 && IPropertyTD.Count == 6)
                        {
                            Street = IPropertyTD[1].Text;
                            City   = IPropertyTD[2].Text;
                            State  = IPropertyTD[3].Text;
                            Zip    = IPropertyTD[5].Text;
                            break;
                        }
                    }
                    //owername2
                    string taxpayee = driver.FindElement(By.XPath("/html/body/div[2]/table/tbody/tr/td/table[1]/tbody/tr/td/table/tbody/tr[2]/td/table/tbody/tr[4]/td[1]")).Text.Trim();
                    try
                    {
                        if (!taxpayee.Contains("Taxpayer"))
                        {
                            Name2 = driver.FindElement(By.XPath("/html/body/div[2]/table/tbody/tr/td/table[1]/tbody/tr/td/table/tbody/tr[2]/td/table/tbody/tr[4]/td[3]")).Text.Trim();
                        }
                    }
                    catch { }
                    Name = Name1 + "  " + Name2;
                    //Sitrus
                    //UseCode = "", TCANumber = "", Taxable = "", Neighborhood = "", PropertyType = "", YearBuilt = "", LotAcreage = "";
                    IWebElement         IPropertyDetails1 = driver.FindElement(By.XPath("/html/body/div[2]/table/tbody/tr/td/table[2]/tbody/tr/td/table/tbody/tr[2]/td/table/tbody"));
                    IList <IWebElement> IPropertyRow1     = IPropertyDetails1.FindElements(By.TagName("tr"));
                    IList <IWebElement> IPropertyTD1;
                    foreach (IWebElement Propertydet1 in IPropertyRow1)
                    {
                        IPropertyTD1 = Propertydet1.FindElements(By.TagName("td"));
                        if (IPropertyTD1.Count != 0 && IPropertyTD1.Count == 2 && Propertydet1.Text.Contains("Situs Address:"))
                        {
                            SitusAddress = IPropertyTD1[1].Text;
                        }
                        if (IPropertyTD1.Count != 0 && IPropertyTD1.Count == 2 && Propertydet1.Text.Contains("Abbreviated Legal:"))
                        {
                            AbbreviatedLegal = IPropertyTD1[1].Text;
                        }
                        if (IPropertyTD1.Count != 0 && IPropertyTD1.Count == 2 && Propertydet1.Text.Contains("Sect/Town/Range:"))
                        {
                            SectTownRange = IPropertyTD1[1].Text;
                        }
                        if (IPropertyTD1.Count != 0 && IPropertyTD1.Count == 2 && Propertydet1.Text.Contains("Size:"))
                        {
                            Size = IPropertyTD1[1].Text;
                        }
                        if (IPropertyTD1.Count != 0 && IPropertyTD1.Count == 2 && Propertydet1.Text.Contains("Use Code:"))
                        {
                            UseCode = IPropertyTD1[1].Text;
                        }
                        if (IPropertyTD1.Count != 0 && IPropertyTD1.Count == 2 && Propertydet1.Text.Contains("TCA Number:"))
                        {
                            TCANumber = IPropertyTD1[1].Text;
                        }
                        if (IPropertyTD1.Count != 0 && IPropertyTD1.Count == 2 && Propertydet1.Text.Contains("Taxable:"))
                        {
                            Taxable = IPropertyTD1[1].Text;
                        }
                        if (IPropertyTD1.Count != 0 && IPropertyTD1.Count == 2 && Propertydet1.Text.Contains("Neighborhood:"))
                        {
                            Neighborhood = IPropertyTD1[1].Text;
                        }
                        if (IPropertyTD1.Count != 0 && IPropertyTD1.Count == 2 && Propertydet1.Text.Contains("Property Type:"))
                        {
                            PropertyType = IPropertyTD1[1].Text;
                        }
                    }
                    Taxing_Authority = driver.FindElement(By.XPath("/html/body/div[2]/div[2]/p/table/tbody")).Text.Trim();
                    try
                    {
                        driver.FindElement(By.XPath("/html/body/div[1]/table[2]/tbody/tr/td/table/tbody/tr/td/table[2]/tbody/tr/td/table[1]/tbody/tr/td[3]/a/img")).Click();
                        Thread.Sleep(2000);
                        gc.CreatePdf(orderNumber, parcelNumber, "Structues Pdf", driver, "WA", "Thurston");
                    }
                    catch { }
                    try
                    {
                        YearBuilt = driver.FindElement(By.XPath("/html/body/div[2]/table/tbody/tr/td/table/tbody/tr/td/table/tbody/tr[2]/td/table/tbody/tr[1]/td[2]")).Text.Trim();
                    }
                    catch { }
                    try
                    {
                        driver.FindElement(By.XPath("/html/body/div[1]/table[2]/tbody/tr/td/table/tbody/tr/td/table[2]/tbody/tr/td/table[1]/tbody/tr/td[4]/a/img")).Click();
                        Thread.Sleep(2000);
                        gc.CreatePdf(orderNumber, parcelNumber, "Land Pdf", driver, "WA", "Thurston");
                    }
                    catch { }
                    LotAcreage = driver.FindElement(By.XPath("/html/body/div[2]/table/tbody/tr/td/table/tbody/tr/td/table/tbody/tr[2]/td[1]/table/tbody/tr[3]/td[3]")).Text.Trim();

                    string Property_Details = Role + "~" + Pct + "~" + Name + "~" + Street + "~" + City + "~" + State + "~" + Zip + "~" + SitusAddress + "~" + AbbreviatedLegal + "~" + SectTownRange + "~" + Size + "~" + UseCode + "~" + TCANumber + "~" + Taxable + "~" + Neighborhood + "~" + PropertyType + "~" + YearBuilt + "~" + LotAcreage + "~" + Taxing_Authority;
                    gc.insert_date(orderNumber, Parcelnumber, 1569, Property_Details, 1, DateTime.Now);

                    try
                    {
                        driver.FindElement(By.XPath("/html/body/div[1]/div/table[2]/tbody/tr/td/table/tbody/tr/td/table[2]/tbody/tr/td/table[1]/tbody/tr/td[9]/a/img")).Click();
                        Thread.Sleep(2000);
                        gc.CreatePdf(orderNumber, parcelNumber, "Owner History Pdf", driver, "WA", "Thurston");
                    }
                    catch { }
                    try
                    {
                        driver.FindElement(By.XPath("/html/body/div[1]/table[2]/tbody/tr/td/table/tbody/tr/td/table[2]/tbody/tr/td/table[2]/tbody/tr/td[1]/a/img")).Click();
                        Thread.Sleep(2000);
                        gc.CreatePdf(orderNumber, parcelNumber, "Values Pdf", driver, "WA", "Thurston");
                    }
                    catch { }
                    //Assessment Details
                    string              TaxyearTitle = "", AssessmentTitle = "", AssessmentValue = "", Activeexemption = "", Taxyear1 = "", Assessmentyear = "", Marketvalueland = "", Marketvaluebuildings = "", Marketvaluetotal = "";
                    IWebElement         IAssessmentDetails = driver.FindElement(By.XPath("/html/body/div[2]/table/tbody/tr/td/table[1]/tbody/tr/td/table/tbody/tr[2]/td/table/tbody"));
                    IList <IWebElement> IAssessmentRow     = IAssessmentDetails.FindElements(By.TagName("tr"));
                    IList <IWebElement> IAssessmentTD;
                    IList <IWebElement> IAssessmentTH;
                    foreach (IWebElement Assessment in IAssessmentRow)
                    {
                        IAssessmentTD = Assessment.FindElements(By.TagName("td"));
                        IAssessmentTH = Assessment.FindElements(By.TagName("th"));
                        if (IAssessmentTH.Count != 0 && (Assessment.Text.Contains("Tax Year") || Assessment.Text.Contains("Assessment Year")))
                        {
                            AssessmentTitle += IAssessmentTH[0].Text + "~";
                            TaxyearTitle    += IAssessmentTH[1].Text + "~";
                            Assessmentyear  += IAssessmentTH[2].Text + "~";
                            Marketvalueland += IAssessmentTH[3].Text + "~";
                        }
                        if (IAssessmentTD.Count != 0 && (Assessment.Text.Contains("Market Value Land") || Assessment.Text.Contains("Market Value Buildings") || Assessment.Text.Contains("Market Value Total")))
                        {
                            AssessmentTitle += IAssessmentTD[0].Text + "~";
                            TaxyearTitle    += IAssessmentTD[1].Text + "~";
                            Assessmentyear  += IAssessmentTD[2].Text + "~";
                            Marketvalueland += IAssessmentTD[3].Text + "~";
                        }
                    }
                    db.ExecuteQuery("update data_field_master set Data_Fields_Text='" + AssessmentTitle.Remove(AssessmentTitle.Length - 1, 1) + "' where Id = '" + 1570 + "'");
                    gc.insert_date(orderNumber, Parcelnumber, 1570, TaxyearTitle.Remove(TaxyearTitle.Length - 1, 1), 1, DateTime.Now);
                    gc.insert_date(orderNumber, Parcelnumber, 1570, Assessmentyear.Remove(Assessmentyear.Length - 1, 1), 1, DateTime.Now);
                    gc.insert_date(orderNumber, Parcelnumber, 1570, Marketvalueland.Remove(Marketvalueland.Length - 1, 1), 1, DateTime.Now);
                    try
                    {
                        driver.FindElement(By.XPath("/html/body/div[1]/table[2]/tbody/tr/td/table/tbody/tr/td/table[2]/tbody/tr/td/table[2]/tbody/tr/td[4]/a/img")).Click();
                        Thread.Sleep(2000);
                        gc.CreatePdf(orderNumber, parcelNumber, "Taxes Pdf", driver, "WA", "Thurston");
                    }
                    catch { }
                    driver.SwitchTo().Window(driver.WindowHandles.Last());
                    Thread.Sleep(5000);

                    //Tax Information Details
                    string propertyAddress = "", propertyDecription = "", propertyTaxCode = "", propertyUseCode = "", yearBuilt = "", strownerName = "", TaxableValue = "", ExemptionAmount = "", AssessedValue = "", TaxYear1 = "", TaxYear2 = "", TaxYear3 = "", ActiveExemption = "", MarketTotal = "", MarketLand = "", MarketImprovement = "", PersonalProperty = "";
                    //Property Values
                    IWebElement         IValues    = driver.FindElement(By.Id("mPropertyValues"));
                    IList <IWebElement> IValuesRow = IValues.FindElements(By.TagName("tr"));
                    IList <IWebElement> IValuesTD;
                    IList <IWebElement> IValuesTH;
                    foreach (IWebElement value in IValuesRow)
                    {
                        IValuesTD = value.FindElements(By.TagName("td"));
                        IValuesTH = value.FindElements(By.TagName("th"));
                        if (IValuesTH.Count != 0 && value.Text.Contains("Tax Year"))
                        {
                            TaxYear1 = IValuesTH[1].Text.Replace("Tax Year", "").Replace("\r\n", "").Trim() + "~";
                            TaxYear2 = IValuesTH[2].Text.Replace("Tax Year", "").Replace("\r\n", "").Trim() + "~";
                            TaxYear3 = IValuesTH[3].Text.Replace("Tax Year", "").Replace("\r\n", "").Trim() + "~";
                        }
                        if (IValuesTD.Count != 0 && value.Text.Contains("Taxable Value Regular"))
                        {
                            TaxYear1 += IValuesTD[1].Text + "~";
                            TaxYear2 += IValuesTD[2].Text + "~";
                            TaxYear3 += IValuesTD[3].Text + "~";
                        }
                        if (IValuesTD.Count != 0 && value.Text.Contains("Exemption Amount Regular"))
                        {
                            TaxYear1 += IValuesTD[1].Text + "~";
                            TaxYear2 += IValuesTD[2].Text + "~";
                            TaxYear3 += IValuesTD[3].Text + "~";
                        }
                        if (IValuesTD.Count != 0 && value.Text.Contains("Market Total"))
                        {
                            TaxYear1 += IValuesTD[1].Text + "~";
                            TaxYear2 += IValuesTD[2].Text + "~";
                            TaxYear3 += IValuesTD[3].Text + "~";
                        }
                        if (IValuesTD.Count != 0 && value.Text.Contains("Assessed Value"))
                        {
                            TaxYear1 += IValuesTD[1].Text + "~";
                            TaxYear2 += IValuesTD[2].Text + "~";
                            TaxYear3 += IValuesTD[3].Text + "~";
                        }
                        if (IValuesTD.Count != 0 && value.Text.Contains("Market Land"))
                        {
                            TaxYear1 += IValuesTD[1].Text + "~";
                            TaxYear2 += IValuesTD[2].Text + "~";
                            TaxYear3 += IValuesTD[3].Text + "~";
                        }
                        if (IValuesTD.Count != 0 && value.Text.Contains("Market Improvement"))
                        {
                            TaxYear1 += IValuesTD[1].Text + "~";
                            TaxYear2 += IValuesTD[2].Text + "~";
                            TaxYear3 += IValuesTD[3].Text + "~";
                        }
                        if (IValuesTD.Count != 0 && value.Text.Contains("Personal Property"))
                        {
                            TaxYear1 += IValuesTD[1].Text + "~";
                            TaxYear2 += IValuesTD[2].Text + "~";
                            TaxYear3 += IValuesTD[3].Text + "~";
                        }
                    }
                    gc.CreatePdf(orderNumber, parcelNumber, "Tax Details Pdf", driver, "WA", "Thurston");
                    IWebElement         IExempet    = driver.FindElement(By.Id("mActiveExemptions"));
                    IList <IWebElement> IExempetRow = IExempet.FindElements(By.TagName("tr"));
                    IList <IWebElement> IExempetTD;
                    foreach (IWebElement value in IExempetRow)
                    {
                        IExempetTD = value.FindElements(By.TagName("td"));
                        if (IExempetTD.Count != 0)
                        {
                            ActiveExemption = IExempetTD[0].Text;
                        }
                    }
                    gc.insert_date(orderNumber, Parcelnumber, 1571, TaxYear1 + ActiveExemption, 1, DateTime.Now);
                    gc.insert_date(orderNumber, Parcelnumber, 1571, TaxYear2, 1, DateTime.Now);
                    gc.insert_date(orderNumber, Parcelnumber, 1571, TaxYear3, 1, DateTime.Now);

                    //Tax Installments Payable Details Table:
                    //Tax Detailed Statement Table:
                    IWebElement         IDistribution    = driver.FindElement(By.Id("mCurrentTaxesDistribution"));
                    IList <IWebElement> IDistributionRow = IDistribution.FindElements(By.TagName("tr"));
                    IList <IWebElement> IDistributionTD;
                    foreach (IWebElement distribution in IDistributionRow)
                    {
                        IDistributionTD = distribution.FindElements(By.TagName("td"));
                        if (IDistributionTD.Count != 0)
                        {
                            string DistributionDetails = IDistributionTD[0].Text + "~" + IDistributionTD[1].Text + "~" + IDistributionTD[2].Text + "~" + IDistributionTD[3].Text + "~" + IDistributionTD[4].Text;
                            gc.insert_date(orderNumber, Parcelnumber, 1572, DistributionDetails, 1, DateTime.Now);
                        }
                    }
                    //Levy Rate History Table
                    IWebElement         ILevyrate    = driver.FindElement(By.Id("mLevyRateHistory"));
                    IList <IWebElement> ILevyrateRow = ILevyrate.FindElements(By.TagName("tr"));
                    IList <IWebElement> ILevyrateTD;
                    foreach (IWebElement Levyrate in ILevyrateRow)
                    {
                        ILevyrateTD = Levyrate.FindElements(By.TagName("td"));
                        if (ILevyrateTD.Count != 0)
                        {
                            string LevyrateDetails = ILevyrateTD[0].Text + "~" + ILevyrateTD[1].Text;
                            gc.insert_date(orderNumber, Parcelnumber, 1581, LevyrateDetails, 1, DateTime.Now);
                        }
                    }
                    //Tax Payment Details
                    IWebElement         IReceipt    = driver.FindElement(By.Id("mReceipts"));
                    IList <IWebElement> IReceiptRow = IReceipt.FindElements(By.TagName("tr"));
                    IList <IWebElement> IReceiptTD;
                    foreach (IWebElement receipt in IReceiptRow)
                    {
                        IReceiptTD = receipt.FindElements(By.TagName("td"));
                        if (IReceiptTD.Count != 0)
                        {
                            string ReceiptDetails = IReceiptTD[0].Text + "~" + IReceiptTD[1].Text + "~" + IReceiptTD[2].Text + "~" + IReceiptTD[3].Text + "~" + IReceiptTD[4].Text + "~" + IReceiptTD[5].Text;
                            gc.insert_date(orderNumber, Parcelnumber, 1573, ReceiptDetails, 1, DateTime.Now);
                        }
                    }
                    ////Installments and Charges Details
                    try
                    {
                        IWebElement         IInstallment    = driver.FindElement(By.Id("mTaxChargesBalancePayment"));
                        IList <IWebElement> IInstallmentRow = IInstallment.FindElements(By.TagName("tr"));
                        IList <IWebElement> IInstallmentTD;
                        foreach (IWebElement install in IInstallmentRow)
                        {
                            IInstallmentTD = install.FindElements(By.TagName("td"));
                            if (IInstallmentTD.Count != 0)
                            {
                                string InstallmentDetails = IInstallmentTD[0].Text + "~" + IInstallmentTD[1].Text + "~" + IInstallmentTD[2].Text + "~" + IInstallmentTD[3].Text + "~" + IInstallmentTD[4].Text + "~" + IInstallmentTD[5].Text + "~" + IInstallmentTD[6].Text;
                                gc.insert_date(orderNumber, Parcelnumber, 1577, InstallmentDetails, 1, DateTime.Now);
                            }
                            //Tax Year~Installment~Earliest Due Date~Principal~Interest Penalties and Costs~Total Due~Cumulative Due
                        }
                    }
                    catch { }
                    //Good Through Details
                    try
                    {
                        List <string> billinfo          = new List <string>();
                        string        Bill_Flag         = driver.FindElement(By.XPath("//*[@id='mTaxChargesBalancePayment']/tbody/tr[2]/td[5]")).Text;
                        string        Good_through_date = "";
                        if (Bill_Flag != "$0.00")
                        {
                            IWebElement href    = driver.FindElement(By.Id("mFuturePayoff"));
                            string      addview = href.GetAttribute("href");
                            driver.Navigate().GoToUrl(addview);
                            gc.CreatePdf(orderNumber, parcelNumber, "Calculate Future Payoff", driver, "WA", "Thurston");

                            IWebElement good_date = driver.FindElement(By.Id("mDate"));
                            Good_through_date = good_date.GetAttribute("value");

                            DateTime G_Date       = Convert.ToDateTime(Good_through_date);
                            string   dateChecking = DateTime.Now.ToString("MM") + "/15/" + DateTime.Now.ToString("yyyy");

                            if (G_Date < Convert.ToDateTime(dateChecking))
                            {
                                //end of the month
                                Good_through_date = new DateTime(Convert.ToInt16(DateTime.Now.ToString("yyyy")), Convert.ToInt16(Convert.ToInt16(DateTime.Now.ToString("MM"))), DateTime.DaysInMonth(Convert.ToInt16(DateTime.Now.ToString("yyyy")), Convert.ToInt16(DateTime.Now.ToString("MM")))).ToString("MM/dd/yyyy");
                            }

                            else if (G_Date >= Convert.ToDateTime(dateChecking))
                            {
                                // nextEndOfMonth
                                if ((Convert.ToInt16(Convert.ToInt16(DateTime.Now.ToString("MM"))) < 12))
                                {
                                    Good_through_date = new DateTime(Convert.ToInt16(DateTime.Now.ToString("yyyy")), Convert.ToInt16(Convert.ToInt16(DateTime.Now.ToString("MM")) + 1), DateTime.DaysInMonth(Convert.ToInt16(DateTime.Now.ToString("yyyy")), Convert.ToInt16(DateTime.Now.ToString("MM")) + 1)).ToString("MM/dd/yyyy");
                                }
                                else
                                {
                                    int nxtYr = Convert.ToInt16(DateTime.Now.ToString("yyyy")) + 1;
                                    Good_through_date = new DateTime(nxtYr, 1, DateTime.DaysInMonth(Convert.ToInt16(DateTime.Now.ToString("yyyy")), 1)).ToString("MM/dd/yyyy");
                                }
                            }
                            driver.FindElement(By.Id("mDate")).Clear();
                            driver.FindElement(By.XPath("//*[@id='mDate']")).SendKeys(Good_through_date);
                            driver.FindElement(By.Id("mCalculate")).SendKeys(Keys.Enter);
                            gc.CreatePdf(orderNumber, Parcelnumber, "Calculate Future Payoff1", driver, "WA", "Thurston");

                            string asofdate = "", Principal = "", Interestandpenalties = "", Totaldue = "";

                            asofdate = driver.FindElement(By.Id("mDisplayDate")).Text;

                            IWebElement         TaxInfoTB = driver.FindElement(By.Id("mGrid"));
                            IList <IWebElement> TaxInfoTR = TaxInfoTB.FindElements(By.TagName("tr"));
                            IList <IWebElement> TaxInfoTD;

                            foreach (IWebElement TaxInfo in TaxInfoTR)
                            {
                                TaxInfoTD = TaxInfo.FindElements(By.TagName("td"));
                                if (TaxInfoTD.Count != 0 && TaxInfoTD.Count == 3 && !TaxInfo.Text.Contains("Principal"))
                                {
                                    Principal            = TaxInfoTD[0].Text;
                                    Interestandpenalties = TaxInfoTD[1].Text;
                                    Totaldue             = TaxInfoTD[2].Text;
                                    string TaxdelinqInfo_Details = asofdate.Trim() + "~" + Principal.Trim() + "~" + Interestandpenalties.Trim() + "~" + Totaldue.Trim();
                                    gc.insert_date(orderNumber, Parcelnumber, 1579, TaxdelinqInfo_Details, 1, DateTime.Now);
                                }
                            }
                        }
                    }
                    catch { }
                    try
                    {
                        IWebElement Backtoproperty = driver.FindElement(By.XPath("//*[@id='mMainHeader_SiteMapPath1']/span[5]/a"));
                        Backtoproperty.Click();
                        Thread.Sleep(2000);
                    }
                    catch { }
                    try
                    {
                        IWebElement viewdetailsclick = driver.FindElement(By.Id("mDetailedStatement"));
                        viewdetailsclick.Click();
                        Thread.Sleep(2000);
                        gc.CreatePdf(orderNumber, Parcelnumber, "View Details", driver, "WA", "Thurston");
                        //driver.Navigate().Back();
                    }
                    catch { }

                    try
                    {////*[@id="mPageHeader_SiteMapPath1"]/span[1]/a
                        IWebElement Backtoproperty = driver.FindElement(By.XPath("//*[@id='mPageHeader_SiteMapPath1']/span[1]/a"));
                        Backtoproperty.Click();
                        Thread.Sleep(2000);
                    }
                    catch { }

                    //try
                    //{
                    //    IWebElement IUIDChrges = driver.FindElement(By.Id("mULID"));
                    //    IUIDChrges.Click();
                    //    gc.CreatePdf(orderNumber, Parcelnumber, "Tax Charges", driver, "WA", "Thurston");
                    //    TaxAuthority = GlobalClass.After(IUIDChrges.Text, "Send to ").Trim();
                    //    IWebElement ICharges = driver.FindElement(By.Id("mTaxChargesBalancePayment"));
                    //    IList<IWebElement> IChargesRow = ICharges.FindElements(By.TagName("tr"));
                    //    IList<IWebElement> IChargesTD;
                    //    foreach (IWebElement charges in IChargesRow)
                    //    {
                    //        IChargesTD = charges.FindElements(By.TagName("td"));
                    //        if (IChargesTD.Count != 0)
                    //        {
                    //            string ChargesDetails = IChargesTD[0].Text + "~" + IChargesTD[1].Text + "~" + IChargesTD[2].Text + "~" + IChargesTD[3].Text + "~" + IChargesTD[4].Text + "~" + IChargesTD[5].Text + "~" + IChargesTD[6].Text + "~" + TaxAuthority;
                    //            gc.insert_date(orderNumber, Parcelnumber, 1580, ChargesDetails, 1, DateTime.Now);
                    //        }
                    //    }
                    //}
                    //catch { }

                    //Tax Balance Details
                    try
                    {
                        // driver.FindElement(By.XPath("//*[@id='mErrorMessageLabel']/a")).Click();
                        // driver.SwitchTo().Window(driver.WindowHandles.Last());
                        driver.Navigate().GoToUrl("https://www.paydici.com/thurston-county-wa/search/new");
                        Thread.Sleep(2000);
                        driver.FindElement(By.Id("q")).SendKeys(Parcelnumber.Trim());
                        gc.CreatePdf(orderNumber, Parcelnumber, "Tax Balace Result1", driver, "WA", "Thurston");
                        driver.FindElement(By.XPath("//*[@id='main']/div[3]/div/div[5]/div/form/input[2]")).SendKeys(Keys.Enter);
                        Thread.Sleep(2000);
                        gc.CreatePdf(orderNumber, Parcelnumber, "Tax Balace Result2", driver, "WA", "Thurston");
                        //driver.FindElement(By.XPath("//*[@id='main']/div[3]/div/div[2]/div[2]/div[1]/div/table/tbody")).Click();
                        //Thread.Sleep(5000);
                        // gc.CreatePdf(orderNumber, Parcelnumber, "Tax Balace Result3", driver, "WA", "Thurston");

                        try
                        {
                            IWebElement         IAddressSearch1 = driver.FindElement(By.Id("bill_group_" + Parcelnumber.Trim()));
                            IJavaScriptExecutor js1             = driver as IJavaScriptExecutor;
                            js1.ExecuteScript("arguments[0].click();", IAddressSearch1);
                            Thread.Sleep(9000);
                            gc.CreatePdf(orderNumber, Parcelnumber, "Tax Balace Result3", driver, "WA", "Thurston");
                        }
                        catch { }
                        string              Taxyeees = "", Amountdue = "", Total = "";
                        IWebElement         taxbal    = driver.FindElement(By.XPath("//*[@id='main']/div[3]/div/div[2]/div[2]/div[1]/div/table/tbody"));
                        IList <IWebElement> taxbalRow = taxbal.FindElements(By.TagName("tr"));
                        IList <IWebElement> taxbalTDstrong;
                        IList <IWebElement> taxbalTDspan;//This bill is now past the due date, additional charges may apply.
                        foreach (IWebElement taxbal1 in taxbalRow)
                        {
                            taxbalTDstrong = taxbal1.FindElements(By.TagName("td"));
                            if (taxbalTDstrong.Count != 0 && taxbalTDstrong.Count == 1)
                            {
                                string[] Taxyearsplit = taxbalTDstrong[0].Text.Split('\r');
                                for (int i = 0; i < Taxyearsplit.Count(); i++)
                                {
                                    if (Taxyearsplit[i].Contains("Property Taxes"))
                                    {
                                        Taxyeees = Taxyearsplit[i].Replace("Property Taxes", "");
                                    }
                                    if (Taxyearsplit[i].Contains("1st Half"))
                                    {
                                        Amountdue = Taxyearsplit[i].Trim();
                                    }
                                    if (Taxyearsplit[i].Contains("Full Year"))
                                    {
                                        Total = Taxyearsplit[i].Trim();
                                    }
                                }
                                string Taxbalacedetails = Taxyeees + "~" + Amountdue + "~" + Total;
                                gc.insert_date(orderNumber, Parcelnumber, 1580, Taxbalacedetails, 1, DateTime.Now);
                                Taxyeees = ""; Amountdue = ""; Total = "";
                            }
                        }
                    }
                    catch { }

                    TaxTime     = DateTime.Now.ToString("HH:mm:ss");
                    LastEndTime = DateTime.Now.ToString("HH:mm:ss");
                    gc.insert_TakenTime(orderNumber, "WA", "Thurston", StartTime, AssessmentTime, TaxTime, CitytaxTime, LastEndTime);

                    driver.Quit();
                    gc.mergpdf(orderNumber, "WA", "Thurston");
                    return("Data Inserted Successfully");
                }

                catch (Exception ex)
                {
                    driver.Quit();
                    throw ex;
                }
            }
        }
        public string FTP_Lorain(string address, string parcelNumber, string ownername, string searchType, string orderNumber, string directParcel)
        {
            GlobalClass.global_orderNo             = orderNumber;
            HttpContext.Current.Session["orderNo"] = orderNumber;
            GlobalClass.global_parcelNo            = parcelNumber;

            string StartTime = "", AssessmentTime = "", TaxTime = "", CitytaxTime = "", LastEndTime = "";

            var driverService = PhantomJSDriverService.CreateDefaultService();

            driverService.HideCommandPromptWindow = true;
            using (driver = new PhantomJSDriver())
            {
                try
                {
                    StartTime = DateTime.Now.ToString("HH:mm:ss");

                    driver.Navigate().GoToUrl("http://www.loraincountyauditor.com/gis/");
                    Thread.Sleep(7000);

                    if (searchType == "titleflex")
                    {
                        string titleaddress = address;
                        gc.TitleFlexSearch(orderNumber, "", "", titleaddress, "OH", "Lorain");
                        if ((HttpContext.Current.Session["TitleFlex_Search"] != null && HttpContext.Current.Session["TitleFlex_Search"].ToString() == "Yes"))
                        {
                            driver.Quit();
                            return("MultiParcel");
                        }
                        else if (HttpContext.Current.Session["titleparcel"].ToString() == "")
                        {
                            HttpContext.Current.Session["Nodata_LorainOH"] = "Yes";
                            driver.Quit();
                            return("No Data Found");
                        }
                        parcelNumber = HttpContext.Current.Session["titleparcel"].ToString();
                        searchType   = "parcel";
                    }

                    if (searchType == "address")
                    {
                        try
                        {
                            driver.FindElement(By.XPath("//*[@id='touring']/div[1]/div[3]/div/button[2]")).SendKeys(Keys.Enter);
                            Thread.Sleep(4000);
                        }
                        catch { }
                        driver.FindElement(By.XPath("//*[@id='bha_FullTextSearchBox_3']/input")).SendKeys(address);
                        gc.CreatePdf_WOP(orderNumber, "Address Search", driver, "OH", "Lorain");

                        driver.FindElement(By.XPath("//*[@id='restconfigsearches_1']/table/tfoot/tr/td[1]/button")).Click();
                        Thread.Sleep(5000);
                        gc.CreatePdf_WOP(orderNumber, "Address Search result", driver, "OH", "Lorain");
                        try
                        {
                            driver.FindElement(By.Id("open-my-report")).Click();
                            Thread.Sleep(4000);
                        }
                        catch { }
                        try
                        {
                            IWebElement Iparcelnum = driver.FindElement(By.XPath("//*[@id='widget-parcel-report']/div[2]/div/div[2]/div/table[1]/tbody/tr[1]/td[2]/a"));
                            parcelNumber = Iparcelnum.Text.Trim();
                            driver.Navigate().GoToUrl("http://www.loraincountyauditor.com/gis/report/Report.aspx?pin=" + parcelNumber + "");
                            Thread.Sleep(4000);
                        }
                        catch { }
                        try
                        {
                            IWebElement multiaddCheck = driver.FindElement(By.XPath("//*[@id='widget-query-results']/div[2]/ul"));
                            if (multiaddCheck.Text != "")
                            {
                                try
                                {
                                    string              strowner = "", strAddress = "";
                                    IWebElement         multiaddress = driver.FindElement(By.XPath("//*[@id='widget-query-results']/div[2]/ul"));
                                    IList <IWebElement> multiRow     = multiaddress.FindElements(By.TagName("tr"));
                                    IList <IWebElement> multiTD;
                                    foreach (IWebElement multi in multiRow)
                                    {
                                        multiTD = multi.FindElements(By.TagName("td"));

                                        if (multiTD.Count != 0 && multiRow.Count > 25)
                                        {
                                            HttpContext.Current.Session["multiparcel_LorainOH_Maximum"] = "Maximum";
                                            driver.Quit();
                                            return("Maximum");
                                        }
                                        if (multiTD.Count != 0 && multiRow.Count > 2 && multiRow.Count <= 25 && multi.Text != "" && !multi.Text.Contains("Mobile Home") && !multi.Text.Contains("Sale Date") && !multi.Text.Contains("Sale Price"))
                                        {
                                            if (multi.Text.Contains("Parcel Number"))
                                            {
                                                parcelNumber = multiTD[2].Text;
                                            }
                                            if (multi.Text.Contains("Owner Name"))
                                            {
                                                strowner = multiTD[1].Text;
                                            }
                                            if (multi.Text.Contains("Address"))
                                            {
                                                strAddress = multiTD[1].Text;
                                            }
                                            if (multi.Text.Contains("Address"))
                                            {
                                                string multidetails = strowner + "~" + strAddress;
                                                gc.insert_date(orderNumber, parcelNumber, 1229, multidetails, 1, DateTime.Now);
                                            }
                                        }
                                    }
                                    if (multiRow.Count > 2 && multiRow.Count <= 25)
                                    {
                                        HttpContext.Current.Session["multiparcel_LorainOH"] = "Yes";
                                        driver.Quit();
                                        return("MultiParcel");
                                    }
                                }
                                catch { }
                            }
                        }
                        catch { }
                    }
                    else if (searchType == "parcel")
                    {
                        parcelNumber = parcelNumber.Trim();
                        try
                        {
                            driver.FindElement(By.XPath("//*[@id='touring']/div[1]/div[3]/div/button[2]")).SendKeys(Keys.Enter);
                            Thread.Sleep(4000);
                        }
                        catch { }
                        driver.FindElement(By.XPath("//*[@id='bha_FullTextSearchBox_0']/input")).SendKeys(parcelNumber);
                        gc.CreatePdf(orderNumber, parcelNumber, "parcel search", driver, "OH", "Lorain");
                        driver.FindElement(By.XPath("//*[@id='restconfigsearches_1']/table/tfoot/tr/td[1]/button")).Click();
                        Thread.Sleep(5000);
                        gc.CreatePdf(orderNumber, parcelNumber, "parcel search Result", driver, "OH", "Lorain");
                        try
                        {
                            driver.FindElement(By.Id("open-my-report")).Click();
                            Thread.Sleep(4000);
                        }
                        catch { }

                        try
                        {
                            IWebElement Iparcelnum = driver.FindElement(By.XPath("//*[@id='widget-parcel-report']/div[2]/div/div[2]/div/table[1]/tbody/tr[1]/td[2]/a"));
                            parcelNumber = Iparcelnum.Text.Trim();
                            driver.Navigate().GoToUrl("http://www.loraincountyauditor.com/gis/report/Report.aspx?pin=" + parcelNumber + "");
                            Thread.Sleep(5000);
                        }
                        catch { }
                        try
                        {
                            IWebElement         multiaddress = driver.FindElement(By.XPath("//*[@id='widget-query-results']/div[2]/ul"));
                            IList <IWebElement> multiRow     = multiaddress.FindElements(By.TagName("tr"));
                            IList <IWebElement> multiTD;
                            foreach (IWebElement multi in multiRow)
                            {
                                multiTD = multi.FindElements(By.TagName("td"));

                                if (multiTD.Count != 0 && multiTD[2].Text == parcelNumber)
                                {
                                    parcelNumber = multiTD[2].Text;
                                    multiTD[2].Click();
                                    Thread.Sleep(2000);
                                    break;
                                }
                            }


                            try
                            {
                                driver.FindElement(By.Id("open-my-report")).Click();
                                Thread.Sleep(4000);
                            }
                            catch { }

                            try
                            {
                                IWebElement Iparcelnum = driver.FindElement(By.XPath("//*[@id='widget-parcel-report']/div[2]/div/div[2]/div/table[1]/tbody/tr[1]/td[2]/a"));
                                parcelNumber = Iparcelnum.Text.Trim();
                                driver.Navigate().GoToUrl("http://www.loraincountyauditor.com/gis/report/Report.aspx?pin=" + parcelNumber + "");
                                Thread.Sleep(4000);
                            }
                            catch { }
                        }
                        catch { }
                    }
                    else if (searchType == "ownername")
                    {
                        try
                        {
                            driver.FindElement(By.XPath("//*[@id='touring']/div[1]/div[3]/div/button[2]")).SendKeys(Keys.Enter);
                            Thread.Sleep(4000);
                        }
                        catch { }
                        driver.FindElement(By.XPath("//*[@id='bha_FullTextSearchBox_2']/input")).SendKeys(ownername);
                        gc.CreatePdf_WOP(orderNumber, "OwnerName Search", driver, "OH", "Lorain");
                        driver.FindElement(By.XPath("//*[@id='restconfigsearches_1']/table/tfoot/tr/td[1]/button")).Click();
                        Thread.Sleep(5000);
                        gc.CreatePdf_WOP(orderNumber, "OwnerName Search Results", driver, "OH", "Lorain");
                        try
                        {
                            IWebElement multiaddCheck = driver.FindElement(By.XPath("//*[@id='widget-query-results']/div[2]/ul"));
                            if (multiaddCheck.Text != "")
                            {
                                try
                                {
                                    string              strowner = "", strAddress = "";
                                    IWebElement         multiaddress = driver.FindElement(By.XPath("//*[@id='widget-query-results']/div[2]/ul"));
                                    IList <IWebElement> multiRow     = multiaddress.FindElements(By.TagName("tr"));
                                    IList <IWebElement> multiTD;
                                    foreach (IWebElement multi in multiRow)
                                    {
                                        multiTD = multi.FindElements(By.TagName("td"));

                                        if (multiTD.Count != 0 && multiRow.Count > 150)
                                        {
                                            HttpContext.Current.Session["multiparcel_LorainOH_Maximum"] = "Maximum";
                                            driver.Quit();
                                            return("Maximum");
                                        }
                                        if (multiTD.Count != 0 && multiRow.Count > 2 && multiRow.Count <= 150 && multi.Text != "" && !multi.Text.Contains("Mobile Home") && !multi.Text.Contains("Sale Date") && !multi.Text.Contains("Sale Price"))
                                        {
                                            if (multi.Text.Contains("Parcel Number"))
                                            {
                                                parcelNumber = multiTD[2].Text;
                                            }
                                            if (multi.Text.Contains("Owner Name"))
                                            {
                                                strowner = multiTD[1].Text;
                                            }
                                            if (multi.Text.Contains("Address"))
                                            {
                                                strAddress = multiTD[1].Text;
                                            }
                                            if (multi.Text.Contains("Address"))
                                            {
                                                string multidetails = strowner + "~" + strAddress;
                                                gc.insert_date(orderNumber, parcelNumber, 1229, multidetails, 1, DateTime.Now);
                                            }
                                        }
                                    }
                                    if (multiRow.Count > 2 && multiRow.Count <= 150)
                                    {
                                        HttpContext.Current.Session["multiparcel_LorainOH"] = "Yes";
                                        driver.Quit();
                                        return("MultiParcel");
                                    }
                                }
                                catch { }
                            }
                        }
                        catch { }
                    }

                    try
                    {
                        IWebElement INodata = driver.FindElement(By.XPath("//*[@id='widget-query-results']/div[2]/div"));
                        if (INodata.Text.Contains("no matches"))
                        {
                            HttpContext.Current.Session["Nodata_LorainOH"] = "Yes";
                            driver.Quit();
                            return("No Data Found");
                        }
                    }
                    catch { }

                    //property details
                    string bulkdata = "";
                    string owner_name = "", LocationAddress = "", Taxbill = "", PropertyDesc = "", Taxdistrict = "", Landuse = "", Neighbourhood = "", Acres = "", SchoolDistrict = "", DelinRealEstate = "", yearbuilt = "";
                    try
                    {
                        bulkdata = driver.FindElement(By.XPath("//*[@id='form1']/div[6]/table/tbody")).Text;
                    }
                    catch { }
                    try
                    {
                        bulkdata = driver.FindElement(By.XPath("//*[@id='form1']/div[7]/table/tbody")).Text;
                    }
                    catch { }

                    parcelNumber    = gc.Between(bulkdata, "Parcel Number", "Land Use").Trim();
                    owner_name      = gc.Between(bulkdata, "Owner", "Neighborhood").Trim();
                    LocationAddress = gc.Between(bulkdata, "Location Address", "Acres").Trim();
                    Taxbill         = gc.Between(bulkdata, "Tax Bill Mailed To", "School District").Trim();
                    PropertyDesc    = gc.Between(bulkdata, "Property Description", "Instrument Number").Trim();
                    Taxdistrict     = gc.Between(bulkdata, "Tax District", "Delinquent Real Estate").Trim();
                    Landuse         = gc.Between(bulkdata, "Land Use", "Owner").Trim();
                    Neighbourhood   = gc.Between(bulkdata, "Neighborhood", "Location Address").Trim();
                    Acres           = gc.Between(bulkdata, "Acres", "Tax Bill Mailed To").Trim();
                    SchoolDistrict  = gc.Between(bulkdata, "School District", "Property Description").Trim();
                    DelinRealEstate = GlobalClass.After(bulkdata, "Delinquent Real Estate").Trim();
                    try
                    {
                        IWebElement Iyearbuilt = driver.FindElement(By.XPath("//*[@id='form1']/div[11]/table/tbody/tr[2]/td[2]"));
                        yearbuilt = Iyearbuilt.Text;
                    }
                    catch { }

                    gc.CreatePdf(orderNumber, parcelNumber, "Property Details", driver, "OH", "Lorain");

                    string propertydetails = owner_name + "~" + LocationAddress + "~" + Taxbill + "~" + PropertyDesc + "~" + Taxdistrict + "~" + Landuse + "~" + Neighbourhood + "~" + Acres + "~" + SchoolDistrict + "~" + DelinRealEstate + "~" + yearbuilt;
                    gc.insert_date(orderNumber, parcelNumber, 1216, propertydetails, 1, DateTime.Now);

                    // Assessment Value Details

                    string              Title = "", Value = "";
                    IWebElement         Assessmentdetails   = driver.FindElement(By.XPath("//*[@id='form1']/div[8]/table/tbody"));
                    IList <IWebElement> TRAssessmentdetails = Assessmentdetails.FindElements(By.TagName("tr"));
                    IList <IWebElement> THAssessmentdetails = Assessmentdetails.FindElements(By.TagName("td"));
                    IList <IWebElement> TDAssessmentdetails;
                    foreach (IWebElement row in TRAssessmentdetails)
                    {
                        TDAssessmentdetails = row.FindElements(By.TagName("td"));
                        if (TDAssessmentdetails.Count != 0 && row.Text.Trim() != "")
                        {
                            Title += TDAssessmentdetails[0].Text + "~";
                            Value += TDAssessmentdetails[1].Text + "~";
                        }
                    }


                    db.ExecuteQuery("update data_field_master set Data_Fields_Text='" + Title.Remove(Title.Length - 1, 1) + "' where Id = '" + 1217 + "'");
                    gc.insert_date(orderNumber, parcelNumber, 1217, Value.Remove(Value.Length - 1, 1), 1, DateTime.Now);

                    // Current Taxes Details

                    string currenttax = driver.FindElement(By.XPath("//*[@id='form1']/div[9]/table/tbody")).Text;
                    string Grossfulltax = "", Statecredit = "", Subtotal = "", non_business_credit = "", owner_occu_Credit = "", Homestead_Credit = "", NetTax = "", SpecialAssess = "";
                    string Delin_spl_Assess = "", UnpaidTaxes = "", TotalTaxes_owed = "", Total_taxes_paid = "", SplAssessment = "", TaxAuth = "";

                    Grossfulltax        = gc.Between(currenttax, "Gross Full Year Tax", "Special Assessment").Trim();
                    Statecredit         = gc.Between(currenttax, "State Credit", "Delinquent Special Assessment").Trim();
                    Subtotal            = gc.Between(currenttax, "Subtotal", "Unpaid Taxes").Trim();
                    non_business_credit = gc.Between(currenttax, "Non-Business Credit", "Total Taxes Owed").Trim();
                    owner_occu_Credit   = gc.Between(currenttax, "Owner Occupancy Credit", "Total Taxes Paid").Trim();
                    Homestead_Credit    = gc.Between(currenttax, "Homestead Credit", "Special Assessments").Trim();
                    NetTax           = GlobalClass.After(currenttax, "Net Tax").Trim();
                    SpecialAssess    = gc.Between(currenttax, "Special Assessment", "State Credit").Trim();
                    Delin_spl_Assess = gc.Between(currenttax, "Delinquent Special Assessment", "Subtotal").Trim();
                    UnpaidTaxes      = gc.Between(currenttax, "Unpaid Taxes", "Non-Business Credit").Trim();
                    TotalTaxes_owed  = gc.Between(currenttax, "Total Taxes Owed", "Owner Occupancy Credit").Trim();
                    Total_taxes_paid = gc.Between(currenttax, "Total Taxes Paid", "Homestead Credit").Trim();
                    SplAssessment    = gc.Between(currenttax, "Special Assessments", "Net Tax").Trim();
                    TaxAuth          = "Lorain County Auditor 226 Middle Ave., 2nd Floor Elyria, OH 44035 (440) 329-5787";

                    string currenttaxdetails = Grossfulltax + "~" + Statecredit + "~" + Subtotal + "~" + non_business_credit + "~" + owner_occu_Credit + "~" + Homestead_Credit + "~" + NetTax + "~" + SpecialAssess + "~" + Delin_spl_Assess + "~" + UnpaidTaxes + "~" + TotalTaxes_owed + "~" + Total_taxes_paid + "~" + SplAssessment + "~" + TaxAuth;
                    gc.insert_date(orderNumber, parcelNumber, 1218, currenttaxdetails, 1, DateTime.Now);

                    // Alert Comments
                    try
                    {
                        if (SplAssessment.Contains("Yes"))
                        {
                            string alertmessage = "Yes, contact the Auditor’s Office at 440-329-5212 for details.";
                            gc.insert_date(orderNumber, parcelNumber, 1232, alertmessage, 1, DateTime.Now);
                        }
                    }
                    catch { }

                    // Special Assessments Tax Details
                    try
                    {
                        IWebElement Itaxyear = driver.FindElement(By.XPath("//*[@id='form1']/div[17]/table/tbody/tr[1]/td"));
                        string      Taxyear = "", Taxyear1 = "", AssessTitle = "", AssessValue = "";
                        Taxyear = Itaxyear.Text.Trim();
                        string[] Taxyear2 = Taxyear.Split();
                        Taxyear1 = Taxyear2[0];
                        IWebElement         SPlAssessmentdetails   = driver.FindElement(By.XPath("//*[@id='form1']/div[17]/table/tbody"));
                        IList <IWebElement> TRSPLAssessmentdetails = SPlAssessmentdetails.FindElements(By.TagName("tr"));
                        IList <IWebElement> THSPLAssessmentdetails = SPlAssessmentdetails.FindElements(By.TagName("td"));
                        IList <IWebElement> TDSPLAssessmentdetails;
                        foreach (IWebElement row in TRSPLAssessmentdetails)
                        {
                            TDSPLAssessmentdetails = row.FindElements(By.TagName("td"));
                            if (TDSPLAssessmentdetails.Count == 1 && row.Text.Trim() != "" && row.Text.Contains("Year"))
                            {
                                AssessTitle += Taxyear1 + "~";
                                AssessValue += TDSPLAssessmentdetails[0].Text.Replace("Year", "").Trim() + "~";
                            }
                            if (TDSPLAssessmentdetails.Count > 1 && row.Text.Trim() != "")
                            {
                                AssessTitle += TDSPLAssessmentdetails[0].Text + "~";
                                AssessValue += TDSPLAssessmentdetails[1].Text + "~";
                            }
                            if (row.Text.Contains("Total Charge"))
                            {
                                db.ExecuteQuery("update data_field_master set Data_Fields_Text='" + AssessTitle.Remove(AssessTitle.Length - 1, 1) + "' where Id = '" + 1219 + "'");
                                gc.insert_date(orderNumber, parcelNumber, 1219, AssessValue.Remove(AssessValue.Length - 1, 1), 1, DateTime.Now);
                                AssessTitle = "";
                                AssessValue = "";
                            }
                        }
                    }
                    catch { }

                    // Tax History Details Table

                    string TaxHistory = driver.FindElement(By.XPath("//*[@id='form1']/div[15]/table/tbody")).Text;
                    int    i1 = 1;
                    string Tax_Year = "", strtaxyear = "", strtaxyear1 = "", Grossfulltax1 = "", Statecredit1 = "", Subtotal1 = "", non_business_credit1 = "", owner_occu_Credit1 = "", Homestead_Credit1 = "", NetTax1 = "", SpecialAssess1 = "";
                    string Delin_spl_Assess1 = "", UnpaidTaxes1 = "", TotalTaxes_owed1 = "", Total_taxes_paid1 = "";

                    IWebElement tbmulti2;

                    tbmulti2 = driver.FindElement(By.XPath("//*[@id='form1']/div[15]/table/tbody"));
                    IList <IWebElement> TRmulti2 = tbmulti2.FindElements(By.TagName("tr"));
                    IList <IWebElement> TDmulti2;
                    foreach (IWebElement row in TRmulti2)
                    {
                        TDmulti2 = row.FindElements(By.TagName("td"));

                        if (TDmulti2.Count != 0 && row.Text.Trim() != "")
                        {
                            if (i1 == 1 || i1 == 8 || row.Text.Contains("Tax Year"))
                            {
                                Tax_Year = TDmulti2[0].Text;
                                string[] taxyear = Tax_Year.Split();
                                strtaxyear  = taxyear[0] + " " + taxyear[1];
                                strtaxyear1 = taxyear[2];
                            }
                            if (i1 == 2 || i1 == 9 || row.Text.Contains("Gross Full Year Tax"))
                            {
                                Grossfulltax1 = TDmulti2[1].Text;
                                NetTax1       = TDmulti2[3].Text;
                            }
                            if (i1 == 3 || row.Text.Contains("State Credit"))
                            {
                                Statecredit1   = TDmulti2[1].Text;
                                SpecialAssess1 = TDmulti2[3].Text;
                            }
                            if (i1 == 4 || row.Text.Contains("Subtotal"))
                            {
                                Subtotal1         = TDmulti2[1].Text;
                                Delin_spl_Assess1 = TDmulti2[3].Text;
                            }
                            if (i1 == 5 || row.Text.Contains("Non-Business Credit"))
                            {
                                non_business_credit1 = TDmulti2[1].Text;
                                UnpaidTaxes1         = TDmulti2[3].Text;
                            }
                            if (i1 == 6 || row.Text.Contains("Owner Occupancy Credit"))
                            {
                                owner_occu_Credit1 = TDmulti2[1].Text;
                                TotalTaxes_owed1   = TDmulti2[3].Text;
                            }
                            if (i1 == 7 || row.Text.Contains("Homestead Credit"))
                            {
                                Homestead_Credit1 = TDmulti2[1].Text;
                                Total_taxes_paid1 = TDmulti2[3].Text;
                            }
                            if (row.Text.Contains("Total Taxes Paid") && Grossfulltax1 != "" && Total_taxes_paid1 != "" && non_business_credit1 != "" && TotalTaxes_owed1 != "")
                            {
                                string TaxHistorydetails = strtaxyear1 + "~" + Grossfulltax1 + "~" + Statecredit1 + "~" + Subtotal1 + "~" + non_business_credit1 + "~" + owner_occu_Credit1 + "~" + Homestead_Credit1 + "~" + NetTax1 + "~" + SpecialAssess1 + "~" + Delin_spl_Assess1 + "~" + UnpaidTaxes1 + "~" + TotalTaxes_owed1 + "~" + Total_taxes_paid1;
                                gc.insert_date(orderNumber, parcelNumber, 1223, TaxHistorydetails, 1, DateTime.Now);
                            }
                            i1++;
                        }
                    }

                    // Tax Payments



                    IWebElement         TaxInfo   = driver.FindElement(By.XPath("//*[@id='form1']/div[16]/table"));
                    IList <IWebElement> TRTaxInfo = TaxInfo.FindElements(By.TagName("tr"));
                    IList <IWebElement> THTaxInfo = TaxInfo.FindElements(By.TagName("th"));
                    IList <IWebElement> TDTaxInfo;
                    foreach (IWebElement row in TRTaxInfo)
                    {
                        TDTaxInfo = row.FindElements(By.TagName("td"));
                        if (TRTaxInfo.Count > 1 && TDTaxInfo.Count != 0 && row.Text.Trim() != "")
                        {
                            string TaxPayDetails = TDTaxInfo[0].Text + "~" + TDTaxInfo[1].Text + "~" + TDTaxInfo[2].Text + "~" + TDTaxInfo[3].Text + "~" + TDTaxInfo[4].Text + "~" + TDTaxInfo[5].Text;

                            gc.insert_date(orderNumber, parcelNumber, 1228, TaxPayDetails, 1, DateTime.Now);
                        }
                    }



                    TaxTime = DateTime.Now.ToString("HH:mm:ss");

                    LastEndTime = DateTime.Now.ToString("HH:mm:ss");
                    gc.insert_TakenTime(orderNumber, "OH", "Lorain", StartTime, AssessmentTime, TaxTime, CitytaxTime, LastEndTime);

                    driver.Quit();
                    gc.mergpdf(orderNumber, "OH", "Lorain");
                    return("Data Inserted Successfully");
                }

                catch (Exception ex)
                {
                    driver.Quit();
                    throw ex;
                }
            }
        }
Beispiel #12
0
        public string FTP_MNDakota(string houseno, string sname, string unitno, string parcelNumber, string searchType, string orderNumber, string ownername, string directParcel)
        {
            string StartTime = "", AssessmentTime = "", TaxTime = "", CitytaxTime = "", LastEndTime = "", AssessTakenTime = "", TaxTakentime = "", CityTaxtakentime = "";
            string TotaltakenTime = "";
            string OwnerName = "", JointOwnerName = "", PropertyAddress = "", MailingAddress = "", Municipality = "", PropertyUse = "", YearBuilt = "", LegalDescription = "", parcel_id = "";

            List<string> strTaxRealestate = new List<string>();
            List<string> strTaxRealestate1 = new List<string>();
            GlobalClass.global_orderNo = orderNumber;
            HttpContext.Current.Session["orderNo"] = orderNumber;
            GlobalClass.global_parcelNo = parcelNumber;
            //IWebElement iframeElement1;
            var driverService = PhantomJSDriverService.CreateDefaultService();
            driverService.HideCommandPromptWindow = true;
            //driver = new PhantomJSDriver();
            driver = new ChromeDriver();
            var option = new ChromeOptions();
            option.AddArgument("No-Sandbox");
            using (driver = new ChromeDriver(option))
            {
                try
                {
                    StartTime = DateTime.Now.ToString("HH:mm:ss");
                    driver.Navigate().GoToUrl("https://gis2.co.dakota.mn.us/WAB/PropertyInformationPublic/index.html");
                    Thread.Sleep(20000);
                    // driver.SwitchTo().Window(driver.WindowHandles.Last());
                    try
                    {

                        IWebElement ISpan12 = driver.FindElement(By.XPath("//*[@id='widgets_Splash_Widget_71']/div[2]/div[2]/div[2]/div[2]"));
                        IJavaScriptExecutor js12 = driver as IJavaScriptExecutor;
                        js12.ExecuteScript("arguments[0].click();", ISpan12);
                        Thread.Sleep(9000);
                    }
                    catch { }
                    if (searchType == "address")
                    {

                        driver.FindElement(By.Id("esri_dijit_Search_0_input")).SendKeys(houseno + " " + sname);
                        gc.CreatePdf_WOP(orderNumber, "Address Search", driver, "MN", "Dakota");
                        driver.FindElement(By.XPath("//*[@id='esri_dijit_Search_0']/div/div[2]")).Click();
                        //   gc.CreatePdf_WOP(orderNumber, "Address Search result", driver, "MN", "Dakota");
                        try
                        {
                            IWebElement Inodata = driver.FindElement(By.XPath("//*[@id='esri_dijit_Search_0']/div/div[4]/div"));
                            if (Inodata.Text.Contains("No results") || Inodata.Text.Contains("no results found"))
                            {
                                HttpContext.Current.Session["Nodata_MNDakota"] = "Yes";
                                driver.Quit();
                                return "No Data Found";
                            }
                        }
                        catch { }
                        Thread.Sleep(10000);
                        try
                        {
                            driver.FindElement(By.XPath("//*[@id='widgets_Search_Widget_60']/div[2]/div[2]/ul/li")).Click();
                            Thread.Sleep(2000);
                        }
                        catch { }
                        try
                        {
                            int i, j = 0;
                            int iRowsCount = driver.FindElements(By.XPath("//*[@id='widgets_Search_Widget_60']/div[2]/div[2]/ul/li")).Count;
                            if (iRowsCount > 1)
                            {
                                if (j < 25)
                                {

                                    for (i = 1; i <= iRowsCount; i++)
                                    {
                                        ////*[@id="widgets_Search_Widget_60"]/div[2]/div[2]/ul
                                        string add1 = driver.FindElement(By.XPath("//*[@id='widgets_Search_Widget_60']/div[2]/div[2]/ul/li[" + i + "]")).Text;
                                        driver.FindElement(By.XPath("//*[@id='widgets_Search_Widget_60']/div[2]/div[2]/ul/li[" + i + "]")).Click();
                                        Thread.Sleep(3000);
                                        driver.SwitchTo().Window(driver.WindowHandles.Last());
                                        Thread.Sleep(1000);
                                        string fulltext4 = driver.FindElement(By.XPath("//*[@id='dijit_layout_ContentPane_0']")).Text.Trim().Replace("\r\n", "");
                                        parcel_id = gc.Between(fulltext4, "Parcel ID:", "Property Details").Trim().Replace("-", "");
                                        PropertyAddress = gc.Between(fulltext4, "Parcel ID:", "Property Details").Trim().Replace("-", "");
                                        // string s1 = parcel_id;
                                        string[] words1 = parcel_id.Split(' ');
                                        parcel_id = words1[0];

                                        parcel_id = parcel_id.Substring(0, 12);
                                        PropertyAddress = WebDriverTest.After(PropertyAddress, parcel_id).Trim();
                                        //string parcel = driver.FindElement(By.XPath("/html/body/div[2]/div[1]/div[4]/div[2]/div/div/div[2]/div/div[1]/div[1]")).Text.Trim().Replace("Parcel ID:", "");
                                        //string fulltext1 = driver.FindElement(By.XPath("/html/body/div[2]/div[1]/div[4]/div[2]/div/div/div[2]/div/div[1]/div[3]/font[4]/table/tbody")).Text.Trim().Replace("\r\n", "");

                                        string Owner = gc.Between(fulltext4, "Owner", "Joint Owner").Trim();
                                        string multi = add1 + "~" + Owner;
                                        gc.insert_date(orderNumber, parcel_id, 464, multi, 1, DateTime.Now);
                                        driver.FindElement(By.XPath("//*[@id='esri_dijit_Search_0']/div/div[2]")).Click();
                                        Thread.Sleep(4000);
                                    }
                                    j++;
                                }

                                if (iRowsCount > 25)
                                {
                                    HttpContext.Current.Session["multiParcel_MNDakota_Multicount"] = "Maximum";
                                }
                                else
                                {
                                    HttpContext.Current.Session["multiparcel_MNDakota"] = "Yes";
                                }
                                driver.Quit();

                                return "MultiParcel";
                            }

                            else
                            {
                                try { 
                                driver.FindElement(By.XPath("//*[@id='widgets_Search_Widget_60']/div[2]/div[2]/ul/li")).Click();
                                Thread.Sleep(8000);
                                }
                                catch { }
                            }


                        }
                        catch { }

                    }

                    if (searchType == "titleflex")
                    {
                        string titleaddress = houseno + " " + sname + " " + unitno;
                        gc.TitleFlexSearch(orderNumber, "", "", titleaddress, "MN", "Dakota");
                        if ((HttpContext.Current.Session["TitleFlex_Search"] != null && HttpContext.Current.Session["TitleFlex_Search"].ToString() == "Yes"))
                        {
                            driver.Quit();
                            return "MultiParcel";
                        }
                        else if (HttpContext.Current.Session["titleparcel"].ToString() == "")
                        {
                            HttpContext.Current.Session["Nodata_MNDakota"] = "Yes";
                            driver.Quit();
                            return "No Data Found";
                        }
                        parcelNumber = HttpContext.Current.Session["titleparcel"].ToString();
                        searchType = "parcel";
                    }


                    if (searchType == "parcel")
                    {
                        if ((HttpContext.Current.Session["TitleFlex_Search"] != null && HttpContext.Current.Session["TitleFlex_Search"].ToString() == "Yes"))
                        {
                            parcelNumber = HttpContext.Current.Session["titleparcel"].ToString();

                        }

                        if (parcelNumber.Contains("-"))
                        {
                            parcel_id = parcelNumber.Replace("-", "");
                        }
                        else
                            parcel_id = parcelNumber;

                        driver.FindElement(By.Id("esri_dijit_Search_0_input")).SendKeys(parcelNumber);
                        gc.CreatePdf(orderNumber, parcel_id, "parcel search", driver, "MN", "Dakota");
                        driver.FindElement(By.XPath("//*[@id='esri_dijit_Search_0']/div/div[2]")).Click();
                        try
                        {
                            IWebElement Inodata = driver.FindElement(By.XPath("//*[@id='esri_dijit_Search_0']/div/div[4]/div"));
                            if (Inodata.Text.Contains("No results") || Inodata.Text.Contains("no results found"))
                            {
                                HttpContext.Current.Session["Nodata_MNDakota"] = "Yes";
                                driver.Quit();
                                return "No Data Found";
                            }
                        }
                        catch { }
                        Thread.Sleep(6000);
                    }


                    //property_details
                    driver.SwitchTo().Window(driver.WindowHandles.Last());
                    //Owner Name~Joint Owner Name~Property Address~Mailing Address~Municipality~Property Use~Year Built~Legal Description
                    gc.CreatePdf(orderNumber, parcel_id, "property info", driver, "MN", "Dakota");
                    string fulltext3 = driver.FindElement(By.XPath("//*[@id='dijit_layout_ContentPane_0']")).Text.Trim().Replace("\r\n", "");
                    parcel_id = gc.Between(fulltext3, "Parcel ID:", "Property Details").Trim().Replace("-", "");
                    PropertyAddress = gc.Between(fulltext3, "Parcel ID:", "Property Details").Trim().Replace("-", "");
                    string s = parcel_id;
                    string[] words = parcel_id.Split(' ');
                    parcel_id = words[0];

                    parcel_id = parcel_id.Substring(0, 12);
                    PropertyAddress = WebDriverTest.After(PropertyAddress, parcel_id).Trim();

                    Thread.Sleep(2000);
                    string fulltext = driver.FindElement(By.XPath("//*[@id='dijit_layout_ContentPane_0']")).Text.Trim().Replace("\r\n", "");
                    OwnerName = gc.Between(fulltext, "Owner", "Joint Owner").Trim();
                    JointOwnerName = gc.Between(fulltext, "Joint Owner", "Owner Address").Trim();
                    MailingAddress = gc.Between(fulltext, "Owner Address", "Municipality").Trim();
                    Municipality = gc.Between(fulltext, "Municipality", "Primary Use").Trim();
                    PropertyUse = gc.Between(fulltext, "Primary Use", "Acres").Trim();
                    LegalDescription = gc.Between(fulltext, "Tax Description", "Lot and Block").Trim();
                    YearBuilt = gc.Between(fulltext, "Year Built", "Building Type").Trim();

                    string property_details = OwnerName + "~" + JointOwnerName + "~" + PropertyAddress + "~" + MailingAddress + "~" + Municipality + "~" + PropertyUse + "~" + YearBuilt + "~" + LegalDescription;
                    gc.insert_date(orderNumber, parcel_id, 461, property_details, 1, DateTime.Now);

                    AssessmentTime = DateTime.Now.ToString("HH:mm:ss");

                    string strCurrentURL = driver.CurrentWindowHandle;
                    //Tax Year~Estimated Market Value~Homestead Exclusion~Taxable Market Value~New Imp/Expired Excl~New Imp/Expired Excl

                    try
                    {
                        var chromeOptions = new ChromeOptions();
                        var downloadDirectory = ConfigurationManager.AppSettings["AutoPdf"];
                        chromeOptions.AddUserProfilePreference("download.default_directory", downloadDirectory);
                        chromeOptions.AddUserProfilePreference("download.prompt_for_download", false);
                        chromeOptions.AddUserProfilePreference("disable-popup-blocking", "true");
                        chromeOptions.AddUserProfilePreference("plugins.always_open_pdf_externally", true);
                        var driver1 = new ChromeDriver(chromeOptions);
                        driver1.Navigate().GoToUrl(driver.Url);
                        Thread.Sleep(20000);
                        string fileName = "PropertyReport";
                        IWebElement ISpan121 = driver1.FindElement(By.XPath("//*[@id='widgets_Splash_Widget_71']/div[2]/div[2]/div[2]/div[2]"));
                        IJavaScriptExecutor js121 = driver1 as IJavaScriptExecutor;
                        js121.ExecuteScript("arguments[0].click();", ISpan121);
                        Thread.Sleep(15000);
                        driver1.FindElement(By.Id("esri_dijit_Search_0_input")).SendKeys(parcel_id);
                        driver1.FindElement(By.XPath("//*[@id='esri_dijit_Search_0']/div/div[2]")).Click();
                        Thread.Sleep(6000);
                        IWebElement Itaxbill = driver1.FindElement(By.LinkText("Property Details"));
                        Itaxbill.Click();
                        Thread.Sleep(6000);
                        gc.AutoDownloadFile(orderNumber, parcelNumber, "Dakota", "MN", "PropertyReport.pdf");

                        driver1.Quit();
                    }
                    catch (Exception e)
                    { }


                    try
                    {
                        IWebElement Itaxstmt = driver.FindElement(By.LinkText("Tax Statement"));
                        string stmt1 = Itaxstmt.GetAttribute("href");
                        strTaxRealestate1.Add(stmt1);
                    }
                    catch { }
                    try
                    {

                        IWebElement Itaxstmt1 = driver.FindElement(By.LinkText("Tax Payment Stub"));
                        string stmt11 = Itaxstmt1.GetAttribute("href");
                        var chDriver = new ChromeDriver();

                        chDriver.Navigate().GoToUrl(stmt11);
                        Thread.Sleep(5000);
                        chDriver.Manage().Window.Size = new Size(480, 320);
                        gc.CreatePdf(orderNumber, parcel_id, "stub", chDriver, "MN", "Dakota");


                        Actions act = new Actions(chDriver);

                        for (int l = 0; l < 13; l++)
                        {
                            act.SendKeys(Keys.Down).Perform();
                        }
                        gc.CreatePdf(orderNumber, parcel_id, "stub2", chDriver, "MN", "Dakota");

                        Thread.Sleep(4000);
                        chDriver.Quit();
                    }
                    catch (Exception e) { }


                    try
                    {
                        IWebElement Itaxstmt2 = driver.FindElement(By.LinkText("Tax Facts"));
                        string stmt12 = Itaxstmt2.GetAttribute("href");
                        gc.downloadfile(stmt12, orderNumber, parcel_id, "TaxFact", "MN", "Dakota");
                    }
                    catch
                    {
                    }

                    List<string> description = new List<string>();
                    List<string> Output1 = new List<string>();
                    List<string> Output2 = new List<string>();

                    List<string> Output1A = new List<string>();
                    List<string> Output2A = new List<string>();
                    foreach (string real in strTaxRealestate1)
                    {
                        driver.Navigate().GoToUrl(real);
                        Thread.Sleep(4000);
                        try {
                            ByVisibleElement(driver.FindElement(By.Id("hplTaxStmntPDF")));
                        }
                        catch { }
                        if (real.Contains("TaxStatement"))
                        {
                            //Taxinfo_Details
                            gc.CreatePdf(orderNumber, parcel_id, "Tax info", driver, "MN", "Dakota");

                            description.Add(driver.FindElement(By.Id("lblLine3")).Text.Trim());
                            Output1.Add(driver.FindElement(By.Id("txtPrevTotalAidTax")).Text.Trim());
                            Output2.Add(driver.FindElement(By.Id("txtCurrentTotalAidTax")).Text.Trim());

                            description.Add(driver.FindElement(By.XPath("//*[@id='txtTaxStatement']/div[52]")).Text.Trim());
                            Output1.Add(driver.FindElement(By.Id("txtPrevHomesteadCredit")).Text.Trim());
                            Output2.Add(driver.FindElement(By.Id("txtCurrentHomesteadCredit")).Text.Trim());

                            description.Add(driver.FindElement(By.Id("Div31")).Text.Trim());
                            Output1.Add(driver.FindElement(By.Id("txtPrevOtherCredits")).Text.Trim());
                            Output2.Add(driver.FindElement(By.Id("txtCurrentOtherCredits")).Text.Trim());

                            description.Add(driver.FindElement(By.Id("Div48")).Text.Trim());
                            Output1.Add(driver.FindElement(By.Id("txtPrevTotalNetTax")).Text.Trim());
                            Output2.Add(driver.FindElement(By.Id("txtCurrentTotalNetTax")).Text.Trim());

                            description.Add(driver.FindElement(By.Id("Div7")).Text.Trim());
                            Output1.Add(driver.FindElement(By.Id("txtPrevCountyTax")).Text.Trim());
                            Output2.Add(driver.FindElement(By.Id("txtCurrentCountyTax")).Text.Trim());

                            description.Add(driver.FindElement(By.Id("Div10")).Text.Trim());
                            Output1.Add(driver.FindElement(By.Id("txtPrevRail")).Text.Trim());
                            Output2.Add(driver.FindElement(By.Id("txtRail")).Text.Trim());

                            description.Add(driver.FindElement(By.Id("txtDistrictName")).Text.Trim());
                            Output1.Add(driver.FindElement(By.Id("txtPrevCityTax")).Text.Trim());
                            Output2.Add(driver.FindElement(By.Id("txtCurrentCityTax")).Text.Trim());

                            description.Add(driver.FindElement(By.Id("Div51")).Text.Trim());
                            Output1.Add(driver.FindElement(By.Id("txtPrevStateTax")).Text.Trim());
                            Output2.Add(driver.FindElement(By.Id("txtCurrentStateTax")).Text.Trim());

                            description.Add(driver.FindElement(By.Id("txtSchoolDistrict")).Text.Trim());
                            Output1.Add(driver.FindElement(By.Id("txtPrevVoterApprovedLevies")).Text.Trim());
                            Output2.Add(driver.FindElement(By.Id("txtCurrentVoterApprovedLevies")).Text.Trim());

                            description.Add(driver.FindElement(By.Id("Div55")).Text.Trim());
                            Output1.Add(driver.FindElement(By.Id("txtPrevOtherLevies")).Text.Trim());
                            Output2.Add(driver.FindElement(By.Id("txtCurrentOtherLevies")).Text.Trim());

                            description.Add(driver.FindElement(By.Id("Div57")).Text.Trim());
                            Output1.Add(driver.FindElement(By.Id("txtPrevMetroTax")).Text.Trim());
                            Output2.Add(driver.FindElement(By.Id("txtCurrentMetroTax")).Text.Trim());

                            description.Add(driver.FindElement(By.Id("Div58")).Text.Trim());
                            Output1.Add(driver.FindElement(By.Id("txtPrevSpecial")).Text.Trim());
                            Output2.Add(driver.FindElement(By.Id("txtCurrentSpecial")).Text.Trim());

                            description.Add(driver.FindElement(By.Id("Div59")).Text.Trim());
                            Output1.Add(driver.FindElement(By.Id("txtPrevTaxIncrement")).Text.Trim());
                            Output2.Add(driver.FindElement(By.Id("txtCurrentTaxIncrement")).Text.Trim());

                            description.Add(driver.FindElement(By.Id("Div60")).Text.Trim());
                            Output1.Add(driver.FindElement(By.Id("txtPrevFiscalDisparity")).Text.Trim());
                            Output2.Add(driver.FindElement(By.Id("txtCurrentFiscalDisparity")).Text.Trim());

                            description.Add(driver.FindElement(By.Id("Div61")).Text.Trim());
                            Output1.Add(driver.FindElement(By.Id("txtPrevNonSchoolVoterLevy")).Text.Trim());
                            Output2.Add(driver.FindElement(By.Id("txtCurrentNonSchoolVoterLevy")).Text.Trim());

                            description.Add(driver.FindElement(By.Id("Div62")).Text.Trim());
                            Output1.Add(driver.FindElement(By.Id("txtPrevTaxBeforeSA")).Text.Trim());
                            Output2.Add(driver.FindElement(By.Id("txtCurrentTaxBeforeSA")).Text.Trim());

                            description.Add(driver.FindElement(By.Id("Div63")).Text.Trim());
                            Output1.Add(driver.FindElement(By.Id("txtTotalSA")).Text.Trim());
                            Output2.Add(" ");

                            description.Add(driver.FindElement(By.Id("Div64")).Text.Trim());
                            Output1.Add(" ");
                            Output2.Add(driver.FindElement(By.Id("txtSAPrincipal")).Text.Trim());

                            description.Add(driver.FindElement(By.Id("Div65")).Text.Trim());
                            Output1.Add(" ");
                            Output2.Add(driver.FindElement(By.Id("txtSAInterest")).Text.Trim());

                            description.Add(driver.FindElement(By.Id("Div66")).Text.Trim());
                            Output1.Add(driver.FindElement(By.Id("txtPriorTaxAndSA")).Text.Trim());
                            Output2.Add(driver.FindElement(By.Id("txtCurrentTaxAndSA")).Text.Trim());

                            description.Add(driver.FindElement(By.Id("Div67")).Text.Trim());
                            Output1.Add(" ");
                            Output2.Add(driver.FindElement(By.Id("txtFirstHalfTax")).Text.Trim());

                            description.Add(driver.FindElement(By.Id("Div69")).Text.Trim());
                            Output1.Add(" ");
                            Output2.Add(driver.FindElement(By.Id("txtSecondHalfTax")).Text.Trim());
                            Output1.Add(driver.FindElement(By.Id("txtPriorYear")).Text.Trim());
                            Output2.Add(driver.FindElement(By.Id("txtCurrentYear")).Text.Trim());

                            string deli = (driver.FindElement(By.Id("txtDelinquentInd")).Text.Trim());
                            string msg = "";

                            if (deli.Contains(""))
                            {
                                deli = "NO";
                                msg = " ";
                            }

                            else
                            {
                                deli = "Yes";
                                msg = "Taxes are Delinquent. Please contact county for tax information";
                            }

                            string tax_address = driver.FindElement(By.Id("lblDeptHeading")).Text.Trim().Replace("\r\n", "");
                            string descriptionN = "Tax Year" + "~" + description[0] + "~" + "Credits that reduce property taxes " + description[1] + "~" + "Credits that reduce property taxes " + description[2] + "~" + description[3] + "~" + "County: " + description[4] + "~" + description[5] + "~" + "City or Town: " + description[6] + "~" + description[7] + "~" + "School District: " + description[8] + " A.  Voter Approved Levies" + "~" + description[9] + "~" + "Special Taxing Districts  " + description[10] + "~" + description[11] + "~" + description[12] + "~" + description[13] + "~" + description[14] + "~" + description[15] + "~" + description[16] + "~" + description[17] + "~" + description[18] + "~" + description[19] + "~" + description[20] + "~" + description[21] + "~" + "Delinquent Taxes" + "~" + "Comments" + "~" + "Tax Address";
                            string taxInfo1 = Output1[22] + "~" + Output1[0] + "~" + Output1[1] + "~" + Output1[2] + "~" + Output1[3] + "~" + Output1[4] + "~" + Output1[5] + "~" + Output1[6] + "~" + Output1[7] + "~" + Output1[8] + "~" + Output1[9] + "~" + Output1[10] + "~" + Output1[11] + "~" + Output1[12] + "~" + Output1[13] + "~" + Output1[14] + "~" + Output1[15] + "~" + Output1[16] + "~" + Output1[17] + "~" + Output1[18] + "~" + Output1[19] + "~" + Output1[20] + "~" + Output1[21] + "~" + deli + "~" + msg + "~" + tax_address;
                            string taxInfo11 = Output2[22] + "~" + Output2[0] + "~" + Output2[1] + "~" + Output2[2] + "~" + Output2[3] + "~" + Output2[4] + "~" + Output2[5] + "~" + Output2[6] + "~" + Output2[7] + "~" + Output2[8] + "~" + Output2[9] + "~" + Output2[10] + "~" + Output2[11] + "~" + Output2[12] + "~" + Output2[13] + "~" + Output2[14] + "~" + Output2[15] + "~" + Output2[16] + "~" + Output2[17] + "~" + Output2[18] + "~" + Output2[19] + "~" + Output2[20] + "~" + Output2[21] + "~" + deli + "~" + msg + "~" + tax_address;

                            DBconnection dbconn = new DBconnection();
                            dbconn.ExecuteQuery("update data_field_master set Data_Fields_Text='" + descriptionN + "' where Id = '" + 463 + "'");

                            gc.insert_date(orderNumber, parcel_id, 463, taxInfo1, 1, DateTime.Now);
                            gc.insert_date(orderNumber, parcel_id, 463, taxInfo11, 1, DateTime.Now);

                            //Assessment details
                            Output1A.Add(driver.FindElement(By.Id("txtPriorYear")).Text.Trim());
                            Output2A.Add(driver.FindElement(By.Id("txtCurrentYear")).Text.Trim());


                            Output1A.Add(driver.FindElement(By.Id("txtPriorMarketValue")).Text.Trim());
                            Output2A.Add(driver.FindElement(By.Id("txtCurrentEstimatedMarketValue")).Text.Trim());


                            Output1A.Add(driver.FindElement(By.Id("txtPriorHmstdExclusion")).Text.Trim());
                            Output2A.Add(driver.FindElement(By.Id("txtCurrentHmstdExclusion")).Text.Trim());

                            Output1A.Add(driver.FindElement(By.Id("txtPriorTaxableMarketValue")).Text.Trim());
                            Output2A.Add(driver.FindElement(By.Id("txtCurrentTaxableMarketValue")).Text.Trim());


                            Output1A.Add(driver.FindElement(By.Id("txtPriorNewImprovements")).Text.Trim());
                            Output2A.Add(driver.FindElement(By.Id("txtCurrentNewImprovements")).Text.Trim());


                            Output1A.Add(driver.FindElement(By.Id("txtPriorValueClass1")).Text.Trim());
                            Output2A.Add(driver.FindElement(By.Id("txtValueClass1")).Text.Trim());
                            string Assessemt1 = Output1A[0] + "~" + Output1A[1] + "~" + Output1A[2] + "~" + Output1A[3] + "~" + Output1A[4] + "~" + Output1A[5];
                            string Assessemt11 = Output2A[0] + "~" + Output2A[1] + "~" + Output2A[2] + "~" + Output2A[3] + "~" + Output2A[4] + "~" + Output2A[5];

                            gc.insert_date(orderNumber, parcel_id, 462, Assessemt1, 1, DateTime.Now);
                            gc.insert_date(orderNumber, parcel_id, 462, Assessemt11, 1, DateTime.Now);



                            //download taxbill
                            try
                            {
                                IWebElement Itaxbill5 = driver.FindElement(By.Id("hplTaxStmntPDF"));
                                string URL15 = Itaxbill5.GetAttribute("href");
                                gc.downloadfile(URL15, orderNumber, parcel_id, "TaxBill1", "MN", "Dakota");
                            }
                            catch
                            { }

                        }



                    }
                    TaxTime = DateTime.Now.ToString("HH:mm:ss");
                    LastEndTime = DateTime.Now.ToString("HH:mm:ss");
                    gc.insert_TakenTime(orderNumber, "MN", "Dakota", StartTime, AssessmentTime, TaxTime, CitytaxTime, LastEndTime);


                    driver.Quit();
                    HttpContext.Current.Session["TitleFlex_Search"] = "";

                    gc.mergpdf(orderNumber, "MN", "Dakota");
                    return "Data Inserted Successfully";
                }

                catch (Exception ex)
                {
                    driver.Quit();
                    throw ex;
                }
            }
        }
Beispiel #13
0
        public string FTP_ILWill(string houseno, string sname, string stype, string unitnumber, string parcelNumber, string searchType, string orderNumber, string ownername, string directParcel)
        {
            GlobalClass.global_orderNo             = orderNumber;
            HttpContext.Current.Session["orderNo"] = orderNumber;
            GlobalClass.global_parcelNo            = parcelNumber;

            string StartTime = "", AssessmentTime = "", TaxTime = "", CitytaxTime = "", LastEndTime = "";

            var driverService = PhantomJSDriverService.CreateDefaultService();

            driverService.HideCommandPromptWindow = true;
            // driver = new ChromeDriver();
            //driver = new PhantomJSDriver()
            using (driver = new PhantomJSDriver())
            {
                try
                {
                    StartTime = DateTime.Now.ToString("HH:mm:ss");

                    if (searchType == "titleflex")
                    {
                        if (directParcel == "")
                        {
                            Address = houseno + " " + sname + " " + stype + " " + unitnumber;
                        }
                        else
                        {
                            Address = houseno + " " + directParcel + " " + sname + " " + stype + " " + unitnumber;
                        }
                        gc.TitleFlexSearch(orderNumber, "", ownername, Address, "IL", "Will");
                        if ((HttpContext.Current.Session["TitleFlex_Search"] != null && HttpContext.Current.Session["TitleFlex_Search"].ToString() == "Yes"))
                        {
                            driver.Quit();
                            return("MultiParcel");
                        }
                        else if (HttpContext.Current.Session["titleparcel"].ToString() == "")
                        {
                            HttpContext.Current.Session["Nodata_ILWill"] = "Yes";
                            driver.Quit();
                            return("No Data Found");
                        }
                        parcelNumber = HttpContext.Current.Session["titleparcel"].ToString();
                        searchType   = "parcel";
                    }

                    if (searchType == "address")
                    {
                        driver.Navigate().GoToUrl("http://www.willcountysoa.com/search.aspx");
                        Thread.Sleep(2000);

                        driver.FindElement(By.Id("ctl00_BC_btnContinue")).Click();
                        Thread.Sleep(2000);

                        driver.FindElement(By.Id("ctl00_BC_hlAddress")).Click();
                        Thread.Sleep(2000);

                        driver.FindElement(By.Id("ctl00_BC_txStreetFrom")).SendKeys(houseno);
                        driver.FindElement(By.Id("ctl00_BC_txStreetName")).SendKeys(sname);

                        gc.CreatePdf_WOP(orderNumber, "Address search", driver, "IL", "Will");
                        driver.FindElement(By.Id("ctl00_BC_btnSearch")).SendKeys(Keys.Enter);
                        Thread.Sleep(2000);

                        //MultiParcel
                        try
                        {
                            IWebElement         MultiTable = driver.FindElement(By.XPath("//*[@id='ctl00_BC_gvParcels']/tbody"));
                            IList <IWebElement> MultiTR    = MultiTable.FindElements(By.TagName("tr"));
                            IList <IWebElement> MultiTD;

                            int maxCheck = 0;
                            gc.CreatePdf_WOP(orderNumber, "MultiAddresssearch", driver, "IL", "Will");
                            foreach (IWebElement Multi in MultiTR)
                            {
                                if (maxCheck <= 25)
                                {
                                    MultiTD = Multi.FindElements(By.TagName("td"));
                                    if (MultiTD.Count > 2 && !Multi.Text.Contains("Displaying") && !Multi.Text.Contains("Pin"))
                                    {
                                        parcelNumber = MultiTD[0].Text;
                                        Address      = MultiTD[1].Text;
                                        City         = MultiTD[2].Text;
                                        Zip          = MultiTD[3].Text;
                                        Class        = MultiTD[4].Text;
                                        Multidata    = Address + "~" + City + "~" + Zip + "~" + Class;
                                        gc.insert_date(orderNumber, parcelNumber, 394, Multidata, 1, DateTime.Now);
                                        maxCheck++;
                                    }
                                }
                            }

                            if (MultiTR.Count > 30)
                            {
                                HttpContext.Current.Session["multiparcel_ILWill_count"] = "Maximum";
                                driver.Quit();
                                return("Maximum");
                                //return GlobalClass.multiparcel_ILWill = "Yes";
                            }
                            if (MultiTR.Count > 5 && MultiTR.Count < 30)
                            {
                                HttpContext.Current.Session["multiparcel_ILWill"] = "Yes";
                                driver.Quit();
                                return("MultiParcel");
                            }
                        }
                        catch
                        { }
                    }

                    if (searchType == "parcel")
                    {
                        if ((HttpContext.Current.Session["titleparcel"] != null && HttpContext.Current.Session["titleparcel"].ToString() == "Yes"))
                        {
                            parcelNumber = HttpContext.Current.Session["titleparcel"].ToString();
                        }
                        driver.Navigate().GoToUrl("http://www.willcountysoa.com/search.aspx");
                        Thread.Sleep(2000);

                        driver.FindElement(By.Id("ctl00_BC_btnContinue")).Click();
                        Thread.Sleep(2000);

                        driver.FindElement(By.Id("ctl00_BC_hlPIN")).Click();
                        Thread.Sleep(2000);

                        if (parcelNumber.Contains("-"))
                        {
                            parcelNumber = parcelNumber.Replace("-", "");
                        }

                        Parcel_A = parcelNumber.Substring(0, 2);
                        Parcel_B = parcelNumber.Substring(2, 2);
                        Parcel_C = parcelNumber.Substring(4, 2);
                        Parcel_D = parcelNumber.Substring(6, 3);
                        Parcel_E = parcelNumber.Substring(9, 3);
                        Parcel_F = parcelNumber.Substring(12, 4);

                        driver.FindElement(By.Id("ctl00_BC_txP1")).SendKeys(Parcel_A);
                        driver.FindElement(By.Id("ctl00_BC_txP2")).SendKeys(Parcel_B);
                        driver.FindElement(By.Id("ctl00_BC_txP3")).SendKeys(Parcel_C);
                        driver.FindElement(By.Id("ctl00_BC_txP4")).SendKeys(Parcel_D);
                        driver.FindElement(By.Id("ctl00_BC_txP5")).SendKeys(Parcel_E);
                        driver.FindElement(By.Id("ctl00_BC_txP6")).SendKeys(Parcel_F);

                        gc.CreatePdf(orderNumber, parcelNumber, "ParcelSearch", driver, "IL", "Will");
                        driver.FindElement(By.Id("ctl00_BC_btnSearch")).SendKeys(Keys.Enter);
                        Thread.Sleep(2000);
                    }

                    try
                    {
                        IWebElement INodata = driver.FindElement(By.Id("ctl00_BC_gvParcels"));
                        if (INodata.Text.Contains("There are no records that match your criteria"))
                        {
                            HttpContext.Current.Session["Nodata_ILWill"] = "Yes";
                            driver.Quit();
                            return("No Data Found");
                        }
                    }
                    catch { }
                    //Property Details
                    InserParcel = driver.FindElement(By.XPath("/html/body/form/div[3]/table/tbody/tr/td[2]/table/tbody/tr[3]/td/table/tbody/tr/td[2]/table/tbody/tr[3]/td[1]/div[1]/div/table[2]/tbody/tr/td[1]/table/tbody/tr[1]/td")).Text.Replace("PIN #:", "");
                    if (InserParcel.Contains("-"))
                    {
                        Outparcel = InserParcel.Replace("-", "").Trim();
                    }
                    // Outparcel = WebDriverTest.After(Outparcel, "PIN #:").Trim();
                    Residential = driver.FindElement(By.XPath("/html/body/form/div[3]/table/tbody/tr/td[2]/table/tbody/tr[3]/td/table/tbody/tr/td[2]/table/tbody/tr[3]/td[1]/div[1]/div/table[2]/tbody/tr/td[1]/table/tbody/tr[2]/td")).Text;

                    try
                    {
                        IWebElement         Yeartable = driver.FindElement(By.XPath("/html/body/form/div[3]/table/tbody/tr/td[2]/table/tbody/tr[3]/td/table/tbody/tr/td[2]/table/tbody/tr[3]/td[1]/div[1]/div/table[6]/tbody"));
                        IList <IWebElement> YearTR    = Yeartable.FindElements(By.TagName("tr"));
                        IList <IWebElement> YearTD;

                        foreach (IWebElement Year in YearTR)
                        {
                            YearTD = Year.FindElements(By.TagName("td"));
                            if (YearTD.Count != 0 && Year.Text.Contains("Year Built:"))
                            {
                                Year_Built = YearTD[1].Text;
                            }
                        }

                        IWebElement         LegalTB = driver.FindElement(By.XPath("/html/body/form/div[3]/table/tbody/tr/td[2]/table/tbody/tr[3]/td/table/tbody/tr/td[2]/table/tbody/tr[3]/td[1]/div[1]/div/table[9]/tbody"));
                        IList <IWebElement> LegalTR = LegalTB.FindElements(By.TagName("tr"));
                        IList <IWebElement> LegalTD;

                        foreach (IWebElement Legal in LegalTR)
                        {
                            LegalTD = Legal.FindElements(By.TagName("td"));
                            if (LegalTD.Count != 0 && !Legal.Text.Contains("") || Legal.Text.Contains("IN"))
                            {
                                Legal_Description = LegalTD[0].Text;
                            }
                        }
                    }
                    catch
                    { }

                    gc.CreatePdf(orderNumber, Outparcel, "Proprty Details", driver, "IL", "Will");
                    Property_Details = Residential + "~" + Year_Built + "~" + Legal_Description;
                    gc.insert_date(orderNumber, InserParcel, 395, Property_Details, 1, DateTime.Now);

                    //Assement Details
                    try
                    {
                        Assessment_Year = driver.FindElement(By.XPath("//*[@id='Table2']/tbody/tr/td[1]/table/tbody/tr[10]/td")).Text;
                        Assessment_Year = WebDriverTest.After(Assessment_Year, "(").Replace(")", "").Trim();
                        Land            = driver.FindElement(By.XPath("/html/body/form/div[3]/table/tbody/tr/td[2]/table/tbody/tr[3]/td/table/tbody/tr/td[2]/table/tbody/tr[3]/td[1]/div[1]/div/table[4]/tbody/tr[1]/td[2]")).Text;
                        Form_Land       = driver.FindElement(By.XPath("/html/body/form/div[3]/table/tbody/tr/td[2]/table/tbody/tr[3]/td/table/tbody/tr/td[2]/table/tbody/tr[3]/td[1]/div[1]/div/table[4]/tbody/tr[1]/td[5]")).Text;
                        Building        = driver.FindElement(By.XPath("/html/body/form/div[3]/table/tbody/tr/td[2]/table/tbody/tr[3]/td/table/tbody/tr/td[2]/table/tbody/tr[3]/td[1]/div[1]/div/table[4]/tbody/tr[2]/td[2]")).Text;
                        Form_Building   = driver.FindElement(By.XPath("/html/body/form/div[3]/table/tbody/tr/td[2]/table/tbody/tr[3]/td/table/tbody/tr/td[2]/table/tbody/tr[3]/td[1]/div[1]/div/table[4]/tbody/tr[2]/td[5]")).Text;
                        Total           = driver.FindElement(By.XPath("/html/body/form/div[3]/table/tbody/tr/td[2]/table/tbody/tr[3]/td/table/tbody/tr/td[2]/table/tbody/tr[3]/td[1]/div[1]/div/table[4]/tbody/tr[3]/td[2]")).Text;
                        Form_Total      = driver.FindElement(By.XPath("/html/body/form/div[3]/table/tbody/tr/td[2]/table/tbody/tr[3]/td/table/tbody/tr/td[2]/table/tbody/tr[3]/td[1]/div[1]/div/table[4]/tbody/tr[3]/td[5]")).Text;

                        Assement_Details = Assessment_Year + "~" + Land + "~" + Form_Land + "~" + Building + "~" + Form_Building + "~" + Total + "~" + Form_Total;
                        gc.insert_date(orderNumber, InserParcel, 396, Assement_Details, 1, DateTime.Now);
                    }
                    catch
                    { }
                    AssessmentTime = DateTime.Now.ToString("HH:mm:ss");

                    //Taxing Authority
                    try
                    {
                        driver.Navigate().GoToUrl("http://www.willcountysoa.com/contact.aspx");
                        Thread.Sleep(2000);

                        gc.CreatePdf(orderNumber, InserParcel, "Authority Details" + TaxYear, driver, "IL", "Will");
                        Taxing_Authority = driver.FindElement(By.XPath("/html/body/form/div[3]/table/tbody/tr/td[2]/table/tbody/tr[3]/td/table/tbody/tr/td[2]/table/tbody/tr[3]/td[1]/table/tbody/tr[5]/td[2]")).Text.Replace("\r\n", "");
                    }
                    catch { }

                    //Tax Information
                    driver.Navigate().GoToUrl("http://willtax.willcountydata.com/ccalm07.asp");
                    Thread.Sleep(2000);
                    //*[@id="hero"]/div[1]/div/div[1]/div/p/a[1]
                    //IWebElement ITaxPreviousYear = driver.FindElement(By.XPath("//*[@id='hero']/div[1]/div/div[1]/div/p"));
                    //IList<IWebElement> ITaxPreviousYearRow = ITaxPreviousYear.FindElements(By.TagName("a"));
                    //foreach (IWebElement PreviousYear in ITaxPreviousYearRow)
                    //{
                    //    if (PreviousYear.Text != "" && PreviousYear.Text.Contains("VIEW") && !PreviousYear.Text.Contains("PAY") && PreviousYear.Text.Contains("TAXES"))
                    //    {
                    //        PreviousYearURL = PreviousYear.GetAttribute("href");
                    //        TAXURL.Add(PreviousYearURL);
                    //    }
                    //}

                    //try
                    //{
                    //    IWebElement ITaxYear = driver.FindElement(By.XPath("//*[@id='hero']/div[1]/div/div[1]/div/p"));
                    //    IList<IWebElement> ITaxYearRow = ITaxYear.FindElements(By.TagName("a"));
                    //    foreach (IWebElement Year in ITaxYearRow)
                    //    {
                    //        if (Year.Text != "" && Year.Text.Contains("VIEW") && Year.Text.Contains("PAY") && Year.Text.Contains("TAXES"))
                    //        {
                    //            Year.Click();
                    //            IWebElement IYearSearch = driver.FindElement(By.LinkText("YES"));
                    //            if (IYearSearch.Text !="" && IYearSearch.Text.Contains("YES"))
                    //            {
                    //                CurrentYearURL = IYearSearch.GetAttribute("href");
                    //            }
                    //        }
                    //    }
                    //}
                    //catch { }
                    int i = 0;


                    driver.FindElement(By.XPath("/html/body/center/table/tbody/tr/td/table/tbody/tr/td/form/p[1]/input")).SendKeys(Outparcel);
                    driver.FindElement(By.XPath("/html/body/center/table/tbody/tr/td/table/tbody/tr/td/form/p[2]/input[1]")).SendKeys(Keys.Enter);
                    Thread.Sleep(2000);
                    PTaxYear = GlobalClass.Before(driver.FindElement(By.XPath("/html/body/div/center/table/tbody/tr/td/center[1]/table/tbody/tr[2]/td")).Text, " Levy Real Estate");
                    gc.CreatePdf(orderNumber, InserParcel, "Tax Search" + PTaxYear, driver, "IL", "Will");
                    POwnerName        = driver.FindElement(By.XPath("/html/body/div/center/table/tbody/tr/td/table/tbody/tr[2]/td[2]")).Text;
                    PMailing_Address1 = driver.FindElement(By.XPath("/html/body/div/center/table/tbody/tr/td/table/tbody/tr[3]/td[2]")).Text;
                    PMailing_Address2 = driver.FindElement(By.XPath("/html/body/div/center/table/tbody/tr/td/table/tbody/tr[4]/td[2]")).Text;
                    PMailing_Address3 = driver.FindElement(By.XPath("/html/body/div/center/table/tbody/tr/td/table/tbody/tr[5]/td[2]")).Text;

                    PMailing_Address = PMailing_Address1 + " " + PMailing_Address2 + " " + PMailing_Address3;

                    PAssessed_Value = driver.FindElement(By.XPath("/html/body/div/center/table/tbody/tr/td/table/tbody/tr[7]/td[3]")).Text;
                    PExemptions     = driver.FindElement(By.XPath("/html/body/div/center/table/tbody/tr/td/table/tbody/tr[7]/td[4]")).Text;
                    PTax_Code       = driver.FindElement(By.XPath("/html/body/div/center/table/tbody/tr/td/table/tbody/tr[9]/td[4]")).Text;
                    PTax_Rate       = driver.FindElement(By.XPath("/html/body/div/center/table/tbody/tr/td/table/tbody/tr[9]/td[5]")).Text;
                    gc.CreatePdf(orderNumber, InserParcel, "Tax Details" + PTaxYear, driver, "IL", "Will");


                    //Current TaxYear
                    try
                    {
                        IWebElement         CurrentTB = driver.FindElement(By.XPath("/html/body/div/center/table/tbody/tr/td/div[1]/p/table/tbody"));
                        IList <IWebElement> CurrentTR = CurrentTB.FindElements(By.TagName("tr"));
                        IList <IWebElement> CurrentTD;

                        foreach (IWebElement Current in CurrentTR)
                        {
                            CurrentTD = Current.FindElements(By.TagName("td"));
                            if (CurrentTD.Count != 0 && !Current.Text.Contains("Installment") && !Current.Text.Contains("Total Base Tax"))
                            {
                                PInstallment = CurrentTD[0].Text.Replace("----", " ").Trim();
                                PTax_Amount  = CurrentTD[1].Text.Replace("\r\n", "----").Trim();
                                PInterest    = CurrentTD[2].Text.Replace("\r\n", "----").Trim();
                                PPaid_Amount = CurrentTD[3].Text.Replace("\r\n", "----").Trim();
                                PPaid_Date   = CurrentTD[4].Text.Replace("\r\n", " ").Trim();
                                PBalance_Due = CurrentTD[5].Text.Replace("\r\n", "----").Trim();

                                PCurrent_Year = PTaxYear + "~" + PInstallment + "~" + PTax_Amount + "~" + PInterest + "~" + PPaid_Amount + "~" + PPaid_Date + "~" + PBalance_Due;
                                gc.insert_date(orderNumber, InserParcel, 402, PCurrent_Year, 1, DateTime.Now);
                            }
                            else if (Current.Text.Contains("Total Base Tax"))
                            {
                                PInstallment = CurrentTD[0].Text.Replace("\r\n", " ").Trim();
                                PTax_Amount  = CurrentTD[1].Text.Replace("\r\n", "----").Trim();

                                PCurrent_Yeartotal = PTaxYear + "~" + PInstallment + "~" + PTax_Amount + "~" + " " + "~" + " " + "~" + " " + "~" + " ";
                                gc.insert_date(orderNumber, InserParcel, 402, PCurrent_Yeartotal, 1, DateTime.Now);
                            }
                        }
                    }
                    catch
                    { }

                    try
                    {
                        IWebElement         CurrentTB = driver.FindElement(By.XPath("/html/body/div/center/table/tbody/tr/td/div[1]/p[2]/table/tbody"));
                        IList <IWebElement> CurrentTR = CurrentTB.FindElements(By.TagName("tr"));
                        IList <IWebElement> CurrentTD;

                        foreach (IWebElement Current in CurrentTR)
                        {
                            CurrentTD = Current.FindElements(By.TagName("td"));
                            if (CurrentTD.Count != 0 && !Current.Text.Contains("Installment") && !Current.Text.Contains("Total Base Tax"))
                            {
                                PInstallment = CurrentTD[0].Text.Replace("----", " ").Trim();
                                PTax_Amount  = CurrentTD[1].Text.Replace("\r\n", "----").Trim();
                                PInterest    = CurrentTD[2].Text.Replace("\r\n", "----").Trim();
                                PPaid_Amount = CurrentTD[3].Text.Replace("\r\n", "----").Trim();
                                PPaid_Date   = CurrentTD[4].Text.Replace("\r\n", " ").Trim();
                                PBalance_Due = CurrentTD[5].Text.Replace("\r\n", "----").Trim();

                                PCurrent_Year = PTaxYear + "~" + PInstallment + "~" + PTax_Amount + "~" + PInterest + "~" + PPaid_Amount + "~" + PPaid_Date + "~" + PBalance_Due;
                                gc.insert_date(orderNumber, InserParcel, 402, PCurrent_Year, 1, DateTime.Now);
                            }
                            else if (Current.Text.Contains("Total Base Tax"))
                            {
                                PInstallment = CurrentTD[0].Text.Replace("\r\n", " ").Trim();
                                PTax_Amount  = CurrentTD[1].Text.Replace("\r\n", "----").Trim();

                                PCurrent_Yeartotal = PTaxYear + "~" + PInstallment + "~" + PTax_Amount + "~" + " " + "~" + " " + "~" + " " + "~" + " ";
                                gc.insert_date(orderNumber, InserParcel, 402, PCurrent_Yeartotal, 1, DateTime.Now);
                            }
                        }
                    }
                    catch
                    { }

                    //Tax Inqiury
                    try
                    {
                        String      Parent_Window = driver.CurrentWindowHandle;
                        IWebElement Tax_Enquiry   = driver.FindElement(By.LinkText("Five Year Tax Inquiry"));
                        Tax_Enquiry.SendKeys(Keys.Enter);
                        Thread.Sleep(4000);
                        driver.SwitchTo().Window(driver.WindowHandles.Last());
                        gc.CreatePdf(orderNumber, InserParcel, "Tax Inquiry Details" + PTaxYear, driver, "IL", "Will");
                        System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
                        driver.SwitchTo().Window(Parent_Window);
                        //driver.Navigate().Back();
                    }
                    catch
                    { }

                    if (i == 0)
                    {
                        //Tax Distribution
                        try
                        {
                            String      Parent_Window5 = driver.CurrentWindowHandle;
                            IWebElement Distribution   = driver.FindElement(By.LinkText("Tax Detail Inquiry"));
                            Distribution.SendKeys(Keys.Enter);
                            Thread.Sleep(2000);
                            driver.SwitchTo().Window(driver.WindowHandles.Last());
                            gc.CreatePdf(orderNumber, InserParcel, "Tax Distribution" + PTaxYear, driver, "IL", "Will");

                            IWebElement         HeadingDistributionTB = driver.FindElement(By.XPath("/html/body/div/center/table/tbody/tr/td/p[5]/table/tbody/tr/td/table/tbody"));
                            IList <IWebElement> HeadingDistributionTR = HeadingDistributionTB.FindElements(By.TagName("tr"));
                            IList <IWebElement> HeadingDistributionTH;
                            foreach (IWebElement Heading in HeadingDistributionTR)
                            {
                                HeadingDistributionTH = Heading.FindElements(By.TagName("th"));
                                if (HeadingDistributionTH.Count != 0 && !Heading.Text.Contains("Taxing Body") && Heading.Text.Trim() != "")
                                {
                                    PFirstYear  = HeadingDistributionTH[0].Text;
                                    PSecondYear = HeadingDistributionTH[1].Text;
                                }
                                if (HeadingDistributionTH.Count != 0 && Heading.Text.Contains("Taxing Body") && Heading.Text.Trim() != "")
                                {
                                    PTaxDisTitle = HeadingDistributionTH[0].Text + "~" + "TaxYear" + "~" + HeadingDistributionTH[1].Text + " " + PFirstYear + "~" + HeadingDistributionTH[2].Text + " " + PFirstYear + "~" + HeadingDistributionTH[3].Text + " " + PSecondYear + "~" + HeadingDistributionTH[4].Text + " " + PSecondYear;
                                }
                            }
                            db.ExecuteQuery("update data_field_master set Data_Fields_Text='" + PTaxDisTitle + "' where Id = '" + 408 + "'");

                            IWebElement         DistributionTB = driver.FindElement(By.XPath("/html/body/div/center/table/tbody/tr/td/p[5]/table/tbody/tr/td/table/tbody"));
                            IList <IWebElement> DistributionTR = DistributionTB.FindElements(By.TagName("tr"));
                            IList <IWebElement> DistributionTD;
                            foreach (IWebElement Distributions in DistributionTR)
                            {
                                DistributionTD = Distributions.FindElements(By.TagName("td"));
                                if (DistributionTD.Count != 0 && !Distributions.Text.Contains("Taxing Body") && !Distributions.Text.Contains(PFirstYear) && Distributions.Text.Trim() != "")
                                {
                                    PAuthority   = DistributionTD[0].Text.Replace("\r\n", " ").Trim();
                                    PRate_2016   = DistributionTD[1].Text.Replace("\r\n", " ").Trim();
                                    PAmount_2016 = DistributionTD[2].Text.Replace("\r\n", " ").Trim();
                                    PRate_2017   = DistributionTD[3].Text.Replace("\r\n", " ").Trim();
                                    PAmount_2017 = DistributionTD[4].Text.Replace("\r\n", " ").Trim();

                                    PTax_Distribution = PAuthority + "~" + PTaxYear + "~" + PRate_2016 + "~" + PAmount_2016 + "~" + PRate_2017 + "~" + PAmount_2017;
                                    gc.insert_date(orderNumber, InserParcel, 408, PTax_Distribution, 1, DateTime.Now);
                                }
                            }
                            System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
                            driver.SwitchTo().Window(Parent_Window5);
                        }
                        catch
                        { }
                    }

                    PTaxInfo_Details = PTaxYear + "~" + POwnerName + "~" + PMailing_Address + "~" + PAssessed_Value + "~" + PExemptions + "~" + PTax_Code + "~" + PTax_Rate + "~" + Taxing_Authority;
                    gc.insert_date(orderNumber, InserParcel, 399, PTaxInfo_Details, 1, DateTime.Now);
                    i++;


                    //if (CurrentYearURL != "")
                    //{
                    //    try
                    //    {
                    //        try
                    //        {
                    //            driver.Navigate().GoToUrl(CurrentYearURL);
                    //            Thread.Sleep(2000);

                    //            driver.FindElement(By.XPath("/html/body/center/table/tbody/tr/td/table/tbody/tr/td/form/p[1]/input")).SendKeys(Outparcel);
                    //            driver.FindElement(By.XPath("/html/body/center/table/tbody/tr/td/table/tbody/tr/td/form/p[2]/input[1]")).SendKeys(Keys.Enter);
                    //            Thread.Sleep(2000);
                    //            TaxYear = GlobalClass.Before(driver.FindElement(By.XPath("/html/body/div/center/table/tbody/tr/td/center[1]/table/tbody/tr[2]/td")).Text, " Levy Real Estate");
                    //            gc.CreatePdf(orderNumber, InserParcel, "Tax Search" + TaxYear, driver, "IL", "Will");
                    //            OwnerName = driver.FindElement(By.XPath("/html/body/div/center/table/tbody/tr/td/table/tbody/tr[2]/td[2]")).Text;
                    //            Mailing_Address1 = driver.FindElement(By.XPath("/html/body/div/center/table/tbody/tr/td/table/tbody/tr[3]/td[2]")).Text;
                    //            Mailing_Address2 = driver.FindElement(By.XPath("/html/body/div/center/table/tbody/tr/td/table/tbody/tr[4]/td[2]")).Text;
                    //            Mailing_Address3 = driver.FindElement(By.XPath("/html/body/div/center/table/tbody/tr/td/table/tbody/tr[5]/td[2]")).Text;

                    //            Mailing_Address = Mailing_Address1 + " " + Mailing_Address2 + " " + Mailing_Address3;

                    //            Assessed_Value = driver.FindElement(By.XPath("/html/body/div/center/table/tbody/tr/td/table/tbody/tr[7]/td[3]")).Text;
                    //            Exemptions = driver.FindElement(By.XPath("/html/body/div/center/table/tbody/tr/td/table/tbody/tr[7]/td[4]")).Text;
                    //            Tax_Code = driver.FindElement(By.XPath("/html/body/div/center/table/tbody/tr/td/table/tbody/tr[9]/td[4]")).Text;
                    //            Tax_Rate = driver.FindElement(By.XPath("/html/body/div/center/table/tbody/tr/td/table/tbody/tr[9]/td[5]")).Text;
                    //            gc.CreatePdf(orderNumber, InserParcel, "Tax Details" + TaxYear, driver, "IL", "Will");
                    //        }
                    //        catch
                    //        { }

                    //        //Current TaxYear
                    //        try
                    //        {
                    //            try
                    //            {
                    //                CurrentTB = driver.FindElement(By.XPath("/html/body/div/center/table/tbody/tr/td/div[1]/p/table/tbody"));
                    //            }
                    //            catch { }
                    //            try
                    //            {
                    //                if (CurrentTB.Text != "")
                    //                {
                    //                    CurrentTB = driver.FindElement(By.XPath("/html/body/div/center/table/tbody/tr/td/div[1]/p[2]/table/tbody"));
                    //                }
                    //            }
                    //            catch { }
                    //            IList<IWebElement> CurrentTR = CurrentTB.FindElements(By.TagName("tr"));
                    //            IList<IWebElement> CurrentTD;

                    //            foreach (IWebElement Current in CurrentTR)
                    //            {
                    //                CurrentTD = Current.FindElements(By.TagName("td"));
                    //                if (CurrentTD.Count != 0 && !Current.Text.Contains("Installment") && !Current.Text.Contains("Total Base Tax"))
                    //                {
                    //                    Installment = CurrentTD[0].Text.Replace("----", " ").Trim();
                    //                    Tax_Amount = CurrentTD[1].Text.Replace("\r\n", "----").Trim();
                    //                    Interest = CurrentTD[2].Text.Replace("\r\n", "----").Trim();
                    //                    Paid_Amount = CurrentTD[3].Text.Replace("\r\n", "----").Trim();
                    //                    Paid_Date = CurrentTD[4].Text.Replace("\r\n", " ").Trim();
                    //                    Balance_Due = CurrentTD[5].Text.Replace("\r\n", "----").Trim();

                    //                    Current_Year = TaxYear + "~" + Installment + "~" + Tax_Amount + "~" + Interest + "~" + Paid_Amount + "~" + Paid_Date + "~" + Balance_Due;
                    //                    gc.insert_date(orderNumber, InserParcel, 402, Current_Year, 1, DateTime.Now);
                    //                }
                    //                else if (Current.Text.Contains("Total Base Tax"))
                    //                {
                    //                    Installment = CurrentTD[0].Text.Replace("\r\n", " ").Trim();
                    //                    Tax_Amount = CurrentTD[1].Text.Replace("\r\n", "----").Trim();

                    //                    Current_Yeartotal = TaxYear + "~" + Installment + "~" + Tax_Amount + "~" + " " + "~" + " " + "~" + " " + "~" + " ";
                    //                    gc.insert_date(orderNumber, InserParcel, 402, Current_Yeartotal, 1, DateTime.Now);
                    //                }
                    //            }
                    //        }
                    //        catch
                    //        { }

                    //        //Tax Inqiury
                    //        try
                    //        {
                    //            String Parent_Window = driver.CurrentWindowHandle;
                    //            IWebElement Tax_Enquiry = driver.FindElement(By.LinkText("Five Year Tax Inquiry"));
                    //            string strTax_Enquiry = Tax_Enquiry.GetAttribute("href");
                    //            Tax_Enquiry.SendKeys(Keys.Control + "t");
                    //            Thread.Sleep(4000);
                    //            gc.CreatePdf(orderNumber, InserParcel, "Tax Inquiry Details" + TaxYear, driver, "IL", "Will");
                    //            System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
                    //            driver.SwitchTo().Window(Parent_Window);
                    //        }
                    //        catch
                    //        { }

                    //        //Tax Distribution
                    //        try
                    //        {
                    //            String Parent_Window5 = driver.CurrentWindowHandle;
                    //            IWebElement Distribution = driver.FindElement(By.LinkText("Tax Detail Inquiry"));
                    //            Thread.Sleep(2000);
                    //            Distribution.SendKeys(Keys.Control + "t");

                    //            driver.SwitchTo().Window(driver.WindowHandles.Last());
                    //            gc.CreatePdf(orderNumber, InserParcel, "Tax Distribution" + TaxYear, driver, "IL", "Will");

                    //            IWebElement HeadingDistributionTB = driver.FindElement(By.XPath("/html/body/div/center/table/tbody/tr/td/p[5]/table/tbody/tr/td/table/tbody"));
                    //            IList<IWebElement> HeadingDistributionTR = HeadingDistributionTB.FindElements(By.TagName("tr"));
                    //            IList<IWebElement> HeadingDistributionTH;
                    //            foreach (IWebElement Heading in HeadingDistributionTR)
                    //            {
                    //                HeadingDistributionTH = Heading.FindElements(By.TagName("th"));
                    //                if (HeadingDistributionTH.Count != 0 && !Heading.Text.Contains("Taxing Body") && Heading.Text.Trim() != "")
                    //                {
                    //                    FirstYear = HeadingDistributionTH[0].Text;
                    //                    SecondYear = HeadingDistributionTH[1].Text;
                    //                }
                    //                if (HeadingDistributionTH.Count != 0 && Heading.Text.Contains("Taxing Body") && Heading.Text.Trim() != "")
                    //                {
                    //                    TaxDisTitle = HeadingDistributionTH[0].Text + "~" + "TaxYear" + "~" + HeadingDistributionTH[1].Text + " " + FirstYear + "~" + HeadingDistributionTH[2].Text + " " + FirstYear + "~" + HeadingDistributionTH[3].Text + " " + SecondYear + "~" + HeadingDistributionTH[4].Text + " " + SecondYear;
                    //                }
                    //            }
                    //            db.ExecuteQuery("update data_field_master set Data_Fields_Text='" + TaxDisTitle + "' where Id = '" + 408 + "'");

                    //            IWebElement DistributionTB = driver.FindElement(By.XPath("/html/body/div/center/table/tbody/tr/td/p[5]/table/tbody/tr/td/table/tbody"));
                    //            IList<IWebElement> DistributionTR = DistributionTB.FindElements(By.TagName("tr"));
                    //            IList<IWebElement> DistributionTD;
                    //            foreach (IWebElement Distributions in DistributionTR)
                    //            {
                    //                DistributionTD = Distributions.FindElements(By.TagName("td"));
                    //                if (DistributionTD.Count != 0 && !Distributions.Text.Contains("Taxing Body") && !Distributions.Text.Contains(FirstYear) && Distributions.Text.Trim() != "")
                    //                {
                    //                    Authority = DistributionTD[0].Text.Replace("\r\n", " ").Trim();
                    //                    Rate_2016 = DistributionTD[1].Text.Replace("\r\n", " ").Trim();
                    //                    Amount_2016 = DistributionTD[2].Text.Replace("\r\n", " ").Trim();
                    //                    Rate_2017 = DistributionTD[3].Text.Replace("\r\n", " ").Trim();
                    //                    Amount_2017 = DistributionTD[4].Text.Replace("\r\n", " ").Trim();

                    //                    Tax_Distribution = Authority + "~" + TaxYear + "~" + Rate_2016 + "~" + Amount_2016 + "~" + Rate_2017 + "~" + Amount_2017;
                    //                    gc.insert_date(orderNumber, InserParcel, 408, Tax_Distribution, 1, DateTime.Now);
                    //                }
                    //            }
                    //            System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
                    //            driver.SwitchTo().Window(Parent_Window5);
                    //        }
                    //        catch
                    //        { }
                    //        try
                    //        {
                    //            driver.Navigate().GoToUrl("http://www.willcountysoa.com/contact.aspx");
                    //            Thread.Sleep(2000);

                    //            gc.CreatePdf(orderNumber, InserParcel, "Authority Details" + TaxYear, driver, "IL", "Will");
                    //            Taxing_Authority = driver.FindElement(By.XPath("/html/body/form/div[3]/table/tbody/tr/td[2]/table/tbody/tr[3]/td/table/tbody/tr/td[2]/table/tbody/tr[3]/td[1]/table/tbody/tr[5]/td[2]")).Text.Replace("\r\n", "");
                    //        }
                    //        catch { }

                    //        TaxInfo_Details = TaxYear + "~" + OwnerName + "~" + Mailing_Address + "~" + Assessed_Value + "~" + Exemptions + "~" + Tax_Code + "~" + Tax_Rate + "~" + Taxing_Authority;
                    //        gc.insert_date(orderNumber, InserParcel, 399, TaxInfo_Details, 1, DateTime.Now);
                    //    }
                    //    catch { }
                    //}


                    //Tax Redemption
                    try
                    {
                        driver.Navigate().GoToUrl("http://willtax.willcountydata.com/ccwtx20.asp");
                        Thread.Sleep(2000);

                        driver.FindElement(By.XPath("/html/body/table/tbody/tr[2]/td/form/p[1]/input")).SendKeys(Outparcel);
                        driver.FindElement(By.XPath("/html/body/table/tbody/tr[2]/td/form/p[2]/input[1]")).SendKeys(Keys.Enter);
                        Thread.Sleep(2000);
                        gc.CreatePdf(orderNumber, InserParcel, "Tax Redemption" + TaxYear, driver, "IL", "Will");

                        List <string>       Bill             = new List <string>();
                        IWebElement         MultiOwnerTable  = driver.FindElement(By.XPath("/html/body/div/center/table/tbody/tr/td/p[5]/table/tbody"));
                        IList <IWebElement> MultiOwnerRowurl = MultiOwnerTable.FindElements(By.TagName("td"));
                        IList <IWebElement> Multibill;
                        foreach (IWebElement row1 in MultiOwnerRowurl)
                        {
                            Multibill = row1.FindElements(By.TagName("a"));
                            if (Multibill.Count != 0 && row1.Text != "")
                            {
                                try
                                {
                                    string MultiOwnerTD = Multibill[0].GetAttribute("href");
                                    Bill.Add(MultiOwnerTD);
                                }
                                catch
                                { }
                            }
                        }
                        try
                        {
                            foreach (string url in Bill)
                            {
                                driver.Navigate().GoToUrl(url);
                                string Tayear = driver.FindElement(By.XPath("/html/body/div/center/table/tbody/tr/td/table[1]/tbody/tr[2]/td[3]")).Text;
                                gc.CreatePdf(orderNumber, InserParcel, "Tax Redemption" + Tayear, driver, "IL", "Will");
                            }
                        }
                        catch { }
                    }
                    catch { }


                    TaxTime = DateTime.Now.ToString("HH:mm:ss");

                    LastEndTime = DateTime.Now.ToString("HH:mm:ss");
                    gc.insert_TakenTime(orderNumber, "IL", "Will", StartTime, AssessmentTime, TaxTime, CitytaxTime, LastEndTime);

                    driver.Quit();
                    gc.mergpdf(orderNumber, "IL", "Will");
                    return("Data Inserted Successfully");
                }
                catch (Exception ex)
                {
                    driver.Quit();
                    GlobalClass.LogError(ex, orderNumber);
                    throw ex;
                }
            }
        }
        public string FTP_CookIL(string Address, string ownername, string parcelNumber, string searchType, string orderNumber, string directParcel)
        {
            GlobalClass.global_orderNo             = orderNumber;
            HttpContext.Current.Session["orderNo"] = orderNumber;
            GlobalClass.global_parcelNo            = parcelNumber;
            string StartTime = "", AssessmentTime = "", TaxTime = "", CitytaxTime = "", LastEndTime = "";
            string Parcel_number = "", Tax_Authority = "", As_of = "", Total_Due = "";
            //request.UseDefaultCredentials = true;
            var driverService = PhantomJSDriverService.CreateDefaultService();

            driverService.HideCommandPromptWindow = true;
            using (driver = new PhantomJSDriver())
            {
                try
                {
                    if (searchType == "titleflex")
                    {
                        //string address = houseno + " " + direction + " " + streetname + " " + streettype;
                        gc.TitleFlexSearch(orderNumber, "", ownername, Address.Trim(), "IL", "Cook");
                        if ((HttpContext.Current.Session["TitleFlex_Search"] != null && HttpContext.Current.Session["TitleFlex_Search"].ToString() == "Yes"))
                        {
                            driver.Quit();
                            return("MultiParcel");
                        }
                        else if (HttpContext.Current.Session["titleparcel"].ToString() == "")
                        {
                            HttpContext.Current.Session["Nodata_CookIL"] = "Zero";
                            driver.Quit();
                            return("No Data Found");
                        }
                        parcelNumber = HttpContext.Current.Session["titleparcel"].ToString().Replace("-", "");
                        searchType   = "parcel";
                    }
                    driver.Navigate().GoToUrl("https://www.cookcountytreasurer.com/setsearchparameters.aspx");
                    if (searchType == "parcel")
                    {
                        driver.FindElement(By.Id("ContentPlaceHolder1_ASPxPanel1_SearchByPIN1_txtPIN1")).SendKeys(parcelNumber.Substring(0, 2));
                        driver.FindElement(By.Id("ContentPlaceHolder1_ASPxPanel1_SearchByPIN1_txtPIN2")).SendKeys(parcelNumber.Substring(2, 2));
                        driver.FindElement(By.Id("ContentPlaceHolder1_ASPxPanel1_SearchByPIN1_txtPIN3")).SendKeys(parcelNumber.Substring(4, 3));
                        driver.FindElement(By.Id("ContentPlaceHolder1_ASPxPanel1_SearchByPIN1_txtPIN4")).SendKeys(parcelNumber.Substring(7, 3));
                        driver.FindElement(By.Id("ContentPlaceHolder1_ASPxPanel1_SearchByPIN1_txtPIN5")).SendKeys(parcelNumber.Substring(10, 4));
                        gc.CreatePdf(orderNumber, parcelNumber, "Tax After click", driver, "IL", "Cook");
                        driver.FindElement(By.Id("ContentPlaceHolder1_ASPxPanel1_SearchByPIN1_cmdContinue")).Click();
                        Thread.Sleep(2000);
                        try
                        {
                            IWebElement Inodata = driver.FindElement(By.Id("ContentPlaceHolder1_ASPxPanel1_SearchByPIN1_panNoPropertyFoundMessage"));
                            if (Inodata.Text.Contains("No property was found under this Property Index Number (PIN)."))
                            {
                                HttpContext.Current.Session["Nodata_CookIL"] = "Zero";
                                driver.Quit();
                                return("No Data Found");
                            }
                        }
                        catch { }
                    }
                    driver.FindElement(By.XPath("//*[@id='ContentPlaceHolder1_DataViewNavigationDesktop1_ASPxMenu1_DXI0_T']")).Click();
                    Thread.Sleep(2000);
                    Parcel_number = driver.FindElement(By.Id("ContentPlaceHolder1_DataViewYourPropertyTaxOverviewResults1_DataViewHeader1_lblPIN")).Text;
                    string propertlocation1 = driver.FindElement(By.Id("ContentPlaceHolder1_DataViewYourPropertyTaxOverviewResults1_DataViewPropertyAndMailingAddress1_lblPropertyAddress")).Text;
                    string propertlocation2 = driver.FindElement(By.Id("ContentPlaceHolder1_DataViewYourPropertyTaxOverviewResults1_DataViewPropertyAndMailingAddress1_lblPropertyCityStateZipCode")).Text;
                    string propertlocation  = propertlocation1 + propertlocation2;
                    string Mailingaddress1  = driver.FindElement(By.Id("ContentPlaceHolder1_DataViewYourPropertyTaxOverviewResults1_DataViewPropertyAndMailingAddress1_lblTaxpayerName1")).Text;
                    string Mailingaddress2  = driver.FindElement(By.Id("ContentPlaceHolder1_DataViewYourPropertyTaxOverviewResults1_DataViewPropertyAndMailingAddress1_lblMailingAddress1")).Text;
                    string Mailingaddress3  = driver.FindElement(By.Id("ContentPlaceHolder1_DataViewYourPropertyTaxOverviewResults1_DataViewPropertyAndMailingAddress1_lblMailingCityStateZipCode1")).Text;
                    string Mailingaddress   = Mailingaddress1 + Mailingaddress2 + Mailingaddress3;
                    string taxyear          = driver.FindElement(By.Id("ContentPlaceHolder1_DataViewYourPropertyTaxOverviewResults1_DataViewYourPropertyTaxOverviewPayments1_lblCurrentTaxYear")).Text;
                    string totalamtbill     = driver.FindElement(By.Id("ContentPlaceHolder1_DataViewYourPropertyTaxOverviewResults1_DataViewYourPropertyTaxOverviewPayments1_lblCurrentTotalAmountBilled")).Text;
                    string totalamtdue      = driver.FindElement(By.Id("ContentPlaceHolder1_DataViewYourPropertyTaxOverviewResults1_DataViewYourPropertyTaxOverviewPayments1_lblCurrentTotalAmountDue")).Text.Trim();
                    Tax_Authority = driver.FindElement(By.XPath("//*[@id='PageFooter']/div[2]/div/div/div[1]/div/div[1]")).Text.Trim();
                    gc.CreatePdf(orderNumber, Parcel_number, "Tax Bill detail", driver, "IL", "Cook");
                    for (int i = 1; i < 3; i++)
                    {
                        IWebElement instalmenttable     = driver.FindElement(By.XPath("//*[@id='ContentPlaceHolder1_DataViewYourPropertyTaxOverviewResults1_DataViewYourPropertyTaxOverviewPayments1_panOnlineCurrent']/div[2]/div[1]/div/div[" + i + "]"));
                        string      instalment          = GlobalClass.Before(instalmenttable.Text, "Original Billed Amount:");
                        string      Original_Billed     = gc.Between(instalmenttable.Text, "Original Billed Amount:", "Due Date:").Trim();
                        string      DueDate             = gc.Between(instalmenttable.Text, "Due Date:", "Tax:").Trim();
                        string      tax                 = gc.Between(instalmenttable.Text, "Tax:", "Interest:").Trim();
                        string      Interest            = gc.Between(instalmenttable.Text, "Interest:", "Last Payment Received:");
                        string      LastPaymentReceived = gc.Between(instalmenttable.Text, "Last Payment Received:", "Date Received:");
                        string      DateReceived        = gc.Between(instalmenttable.Text, "Date Received:", "Current Amount Due:").Trim();
                        string      CurrentAmountDue    = GlobalClass.After(instalmenttable.Text, "Current Amount Due:").Trim();
                        string      tax_bill_result     = propertlocation + "~" + Mailingaddress + "~" + taxyear + "~" + totalamtbill + "~" + instalment + "~" + Original_Billed + "~" + DueDate + "~" + tax + "~" + Interest + "~" + LastPaymentReceived + "~" + DateReceived + "~" + CurrentAmountDue + "~" + totalamtdue + "~" + Tax_Authority;
                        gc.insert_date(orderNumber, Parcel_number, 1035, tax_bill_result, 1, DateTime.Now);
                    }
                    //Tax Exemptions
                    driver.FindElement(By.XPath("//*[@id='ContentPlaceHolder1_DataViewNavigationDesktop1_ASPxMenu1_DXI3_T']")).Click();
                    Thread.Sleep(2000);
                    gc.CreatePdf(orderNumber, Parcel_number, "Tax Exemptions", driver, "IL", "Cook");
                    IWebElement         exceptionelement      = driver.FindElement(By.XPath("//*[@id='ContentPlaceHolder1_DataViewExemptionHistoryResults1_panViewDataSet']/div[1]/p[1]"));
                    string              exceptiontaxyear      = gc.Between(exceptionelement.Text, "for", ".").Trim();
                    IWebElement         exceptiontaxyeartable = driver.FindElement(By.XPath("//*[@id='ContentPlaceHolder1_DataViewExemptionHistoryResults1_panViewDataSet']/div[3]/div[1]/table/tbody"));
                    IList <IWebElement> exceptiontaxyearrow   = exceptiontaxyeartable.FindElements(By.TagName("tr"));
                    IList <IWebElement> exceptiontaxyearid;
                    foreach (IWebElement exception in exceptiontaxyearrow)
                    {
                        exceptiontaxyearid = exception.FindElements(By.TagName("td"));
                        if (exceptiontaxyearid[0].Text.Trim() == "")
                        {
                            DBconnection dbconn        = new DBconnection();
                            string       execptionyear = exceptiontaxyear + "~" + exceptiontaxyearid[1].Text + "~" + exceptiontaxyearid[2].Text + "~" + exceptiontaxyearid[3].Text + "~" + exceptiontaxyearid[4].Text;
                            dbconn.ExecuteQuery("update data_field_master set Data_Fields_Text='" + execptionyear + "' where Id = '" + 1036 + "'");
                        }
                        if (exceptiontaxyearid.Count != 0 && exceptiontaxyearid[0].Text.Trim() != "")
                        {
                            string exceptionyearresult = exceptiontaxyearid[0].Text + "~" + exceptiontaxyearid[1].Text + "~" + exceptiontaxyearid[2].Text + "~" + exceptiontaxyearid[3].Text + "~" + exceptiontaxyearid[4].Text;
                            gc.insert_date(orderNumber, Parcel_number, 1036, exceptionyearresult, 1, DateTime.Now);
                        }
                    }
                    //Delinquent Taxes
                    try
                    {
                        driver.FindElement(By.XPath("//*[@id='ContentPlaceHolder1_DataViewNavigationDesktop1_ASPxMenu1_DXI4_T']")).Click();
                        Thread.Sleep(2000);
                        gc.CreatePdf(orderNumber, Parcel_number, "Delinquent Taxes1", driver, "IL", "Cook");
                        string tax_year  = driver.FindElement(By.Id("ContentPlaceHolder1_DataViewDelinquentPropertyTaxResults1_DataList1_lblTaxYear_0")).Text;
                        string tax_type  = driver.FindElement(By.Id("ContentPlaceHolder1_DataViewDelinquentPropertyTaxResults1_DataList1_lblTaxType_0")).Text;
                        string Total_amt = driver.FindElement(By.Id("ContentPlaceHolder1_DataViewDelinquentPropertyTaxResults1_DataList1_lblTotalAmountDue_0")).Text;
                        string Name_tax  = driver.FindElement(By.Id("ContentPlaceHolder1_DataViewDelinquentPropertyTaxResults1_DataList1_lblTaxpayerName_0")).Text;
                        string delquenttaxfirstresult = tax_year + "~" + tax_type + "~" + Total_amt + "~" + Name_tax + "~" + propertlocation;
                        gc.insert_date(orderNumber, Parcel_number, 1044, delquenttaxfirstresult, 1, DateTime.Now);
                    }
                    catch { }
                    //Overview - Payments
                    try
                    {
                        driver.FindElement(By.XPath("//*[@id='ContentPlaceHolder1_DataViewNavigationDesktop1_ASPxMenu1_DXI0_T']")).Click();
                        Thread.Sleep(2000);
                        gc.CreatePdf(orderNumber, Parcel_number, "Delinquent Taxes", driver, "IL", "Cook");
                        string urgent_delequent = driver.FindElement(By.XPath("//*[@id='ContentPlaceHolder1_DataViewYourPropertyTaxOverviewResults1_DataViewYourPropertyTaxOverviewPayments1_panTaxesSoldTaxNotice']/div/div[2]/div[4]")).Text.Trim();
                        gc.insert_date(orderNumber, Parcel_number, 1056, urgent_delequent, 1, DateTime.Now);
                    }
                    catch { }
                    //Download Your Tax Bill
                    driver.FindElement(By.XPath("//*[@id='ContentPlaceHolder1_DataViewNavigationDesktop1_ASPxMenu1_DXI1_T']")).Click();
                    Thread.Sleep(2000);
                    gc.CreatePdf(orderNumber, Parcel_number, "Delinquent Taxes", driver, "IL", "Cook");
                    IWebElement downloadtax  = driver.FindElement(By.XPath("//*[@id='ContentPlaceHolder1_DataViewRequestADuplicateTaxBillResults1_DataViewYourPropertyTaxOverviewTaxBills1_panCurrentTaxBill']/div/a[2]"));
                    string      downloadhref = downloadtax.GetAttribute("href");
                    gc.downloadfile(downloadhref, orderNumber, Parcel_number, "ViewTaxBill.pdf", "IL", "Cook");
                    Thread.Sleep(2000);
                    //Taxing Districts' Financials
                    try
                    {
                        driver.FindElement(By.XPath("//*[@id='ContentPlaceHolder1_DataViewNavigationDesktop1_ASPxMenu1_DXI9_T']")).Click();
                        Thread.Sleep(2000);
                        gc.CreatePdf(orderNumber, Parcel_number, "Taxing Districts Financials second", driver, "IL", "Cook");
                        driver.FindElement(By.Id("ContentPlaceHolder1_DataViewTaxingDistrictsResults1_ASPxPageControl1_T0")).Click();
                        Thread.Sleep(2000);
                        gc.CreatePdf(orderNumber, Parcel_number, "Taxing Districts Financials First", driver, "IL", "Cook");
                    }
                    catch { }
                    //Delinquent Property Tax Search
                    try
                    {
                        driver.Navigate().GoToUrl("https://taxdelinquent.cookcountyclerk.com/");
                        driver.FindElement(By.Id("Pin")).SendKeys(Parcel_number);
                        gc.CreatePdf(orderNumber, Parcel_number, "Delinquent Property Tax Search", driver, "IL", "Cook");
                        driver.FindElement(By.XPath("//*[@id='collapseOne']/div[2]/form/div[3]/button")).Click();
                        Thread.Sleep(2000);
                        gc.CreatePdf(orderNumber, Parcel_number, "Delinquent Property Tax Sold", driver, "IL", "Cook");
                        try
                        {
                            string nodeliquent = driver.FindElement(By.XPath("//*[@id='collapseOne']/div[2]/form/div[1]/div")).Text.Trim();
                            if (nodeliquent.Trim() != "")
                            {
                                gc.insert_date(orderNumber, Parcel_number, 1120, nodeliquent, 1, DateTime.Now);
                            }
                        }
                        catch { }
                        try
                        {
                            IWebElement         dateoftable            = driver.FindElement(By.XPath("/html/body/div/div/div[1]/div[3]/div/h6"));
                            string              dateof                 = GlobalClass.After(dateoftable.Text, "Data as of").Trim();
                            IWebElement         solddelinquenttaxtable = driver.FindElement(By.XPath("//*[@id='collapseTwo']/div[1]/table/tbody"));
                            IList <IWebElement> solddelequentrow       = solddelinquenttaxtable.FindElements(By.TagName("tr"));
                            IList <IWebElement> soldid;
                            foreach (IWebElement sold in solddelequentrow)
                            {
                                soldid = sold.FindElements(By.TagName("td"));
                                if (soldid.Count != 0)
                                {
                                    string soldresult = dateof + "~" + soldid[0].Text + "~" + soldid[1].Text + "~" + soldid[2].Text + "~" + soldid[3].Text + "~" + soldid[4].Text + "~" + soldid[5].Text;
                                    gc.insert_date(orderNumber, Parcel_number, 1057, soldresult, 1, DateTime.Now);
                                    dateof = "";
                                }
                            }
                        }
                        catch { }
                    }
                    catch { }
                    driver.Quit();
                    gc.mergpdf(orderNumber, "IL", "Cook");
                    return("Data Inserted Successfully");
                }
                catch (Exception ex)
                {
                    driver.Quit();
                    GlobalClass.LogError(ex, orderNumber);
                    throw ex;
                }
            }
        }
        public string FTP_Jackson(string address, string parcelNumber, string ownername, string searchType, string orderNumber, string directParcel)
        {
            GlobalClass.global_orderNo             = orderNumber;
            HttpContext.Current.Session["orderNo"] = orderNumber;
            GlobalClass.global_parcelNo            = parcelNumber;
            string TaxingAuthority = "";
            string StartTime = "", AssessmentTime = "", TaxTime = "", CitytaxTime = "", LastEndTime = "";

            var driverService = PhantomJSDriverService.CreateDefaultService();

            driverService.HideCommandPromptWindow = true;
            using (driver = new PhantomJSDriver())
            {
                try
                {
                    StartTime = DateTime.Now.ToString("HH:mm:ss");

                    // Tax Authority

                    try
                    {
                        driver.Navigate().GoToUrl("https://www.jacksongov.org/");
                        Thread.Sleep(4000);

                        string Taxdata = driver.FindElement(By.XPath("//*[@id='divInfoAdv4a53fb58-d028-47d8-88f0-e3a4adb4ebf3']/div[1]/div/div/ol/li")).Text.Replace("\r\n", " ");

                        TaxingAuthority = Taxdata.Replace("Contact Directory", "").Trim();
                    }
                    catch { }

                    // Property Details
                    driver.Navigate().GoToUrl("https://ascendweb.jacksongov.org/ascend/(wk2eksmei2b2j1455lgftmfb)/search.aspx");
                    Thread.Sleep(4000);
                    gc.CreatePdf_WOP(orderNumber, "Home page", driver, "MO", "Jackson");

                    if (searchType == "titleflex")
                    {
                        gc.TitleFlexSearch(orderNumber, "", ownername, address, "MO", "Jackson");
                        if ((HttpContext.Current.Session["TitleFlex_Search"] != null && HttpContext.Current.Session["TitleFlex_Search"].ToString() == "Yes"))
                        {
                            driver.Quit();
                            return("MultiParcel");
                        }
                        else if (HttpContext.Current.Session["titleparcel"].ToString() == "")
                        {
                            HttpContext.Current.Session["Nodata_JacksonMO"] = "Yes";
                            driver.Quit();
                            return("No Data Found");
                        }
                        parcelNumber = HttpContext.Current.Session["titleparcel"].ToString();
                        searchType   = "parcel";
                    }
                    if (searchType == "address")
                    {
                        driver.FindElement(By.Id("mSearchControl_mStreetAddress")).SendKeys(address);
                        gc.CreatePdf_WOP(orderNumber, "Address search", driver, "MO", "Jackson");
                        driver.FindElement(By.Id("mSearchControl_mSubmit")).SendKeys(Keys.Enter);
                        Thread.Sleep(3000);
                        gc.CreatePdf_WOP(orderNumber, "Address Search Result", driver, "MO", "Jackson");
                        try
                        {
                            string              strparcel    = "";
                            int                 s            = 0;
                            int                 Max          = 0;
                            IWebElement         add_search   = driver.FindElement(By.XPath("//*[@id='mResultscontrol_mGrid_RealDataGrid']/tbody"));
                            IList <IWebElement> TRadd_search = add_search.FindElements(By.TagName("tr"));
                            IList <IWebElement> THadd_search = add_search.FindElements(By.TagName("th"));
                            IList <IWebElement> TDadd_search;
                            foreach (IWebElement row in TRadd_search)
                            {
                                TDadd_search = row.FindElements(By.TagName("td"));
                                if (TRadd_search.Count >= 2 && TDadd_search.Count != 0 && !row.Text.Contains("Location Address"))
                                {
                                    string parcel_id = TDadd_search[0].Text;
                                    if (parcel_id.Trim().Replace("-", "").Count() == 17 && parcel_id.Trim().Replace("-", "").Count() != 9 && !row.Text.Contains("No Values Found"))
                                    {
                                        string Address        = TDadd_search[1].Text;
                                        string ownername1     = TDadd_search[2].Text;
                                        string AddressDetails = ownername1 + "~" + Address;

                                        gc.insert_date(orderNumber, parcel_id, 1420, AddressDetails, 1, DateTime.Now);
                                        s++;
                                        strparcel = parcel_id;
                                        Max++;
                                    }
                                }
                            }
                            if (s == 1)
                            {
                                driver.FindElement(By.LinkText(strparcel)).SendKeys(Keys.Enter);
                                Thread.Sleep(5000);
                                gc.CreatePdf_WOP(orderNumber, "Property Details", driver, "MO", "Jackson");
                            }
                            if (s > 1 && s < 25)
                            {
                                gc.CreatePdf_WOP(orderNumber, "Multi Address search result", driver, "MO", "Jackson");
                                HttpContext.Current.Session["MOJackson"] = "Yes";
                                driver.Quit();
                                return("MultiParcel");
                            }
                            if (s > 25)
                            {
                                HttpContext.Current.Session["multiParcel_MOJackson_Multicount"] = "Maximum";
                                driver.Quit();
                                return("Maximum");
                            }
                            if (Max == 0)
                            {
                                HttpContext.Current.Session["Nodata_JacksonMO"] = "Yes";
                                driver.Quit();
                                return("No Data Found");
                            }
                        }
                        catch { }
                    }
                    else if (searchType == "ownername")
                    {
                        if (!ownername.Contains('*'))
                        {
                            ownername = ownername + "*";
                        }

                        driver.FindElement(By.Id("mSearchControl_mName")).SendKeys(ownername);
                        gc.CreatePdf(orderNumber, parcelNumber, "ownername search", driver, "MO", "Jackson");
                        driver.FindElement(By.Id("mSearchControl_mSubmit")).SendKeys(Keys.Enter);
                        Thread.Sleep(3000);
                        gc.CreatePdf(orderNumber, parcelNumber, "ownername search Result", driver, "MO", "Jackson");
                        try
                        {
                            string              strparcel    = "";
                            int                 Max          = 0;
                            IWebElement         add_search   = driver.FindElement(By.XPath("//*[@id='mResultscontrol_mGrid_RealDataGrid']/tbody"));
                            IList <IWebElement> TRadd_search = add_search.FindElements(By.TagName("tr"));
                            IList <IWebElement> THadd_search = add_search.FindElements(By.TagName("th"));
                            IList <IWebElement> TDadd_search;
                            foreach (IWebElement row in TRadd_search)
                            {
                                TDadd_search = row.FindElements(By.TagName("td"));
                                if (TRadd_search.Count > 3 && TDadd_search.Count != 0 && !row.Text.Contains("Location Address") && !row.Text.Contains("No Values Found"))
                                {
                                    string parcel_id = TDadd_search[0].Text;
                                    if (parcel_id.Trim().Replace("-", "").Count() == 17 && parcel_id.Trim().Replace("-", "").Count() != 9 && !row.Text.Contains("No Values Found"))
                                    {
                                        string Address        = TDadd_search[2].Text;
                                        string ownername1     = TDadd_search[1].Text;
                                        string AddressDetails = ownername1 + "~" + Address;

                                        gc.insert_date(orderNumber, parcel_id, 1420, AddressDetails, 1, DateTime.Now);
                                        strparcel = parcel_id;
                                        Max++;
                                    }
                                }
                                if (TRadd_search.Count == 3)
                                {
                                    driver.FindElement(By.XPath("//*[@id='mResultscontrol_mGrid_RealDataGrid']/tbody/tr[3]/td[1]/a")).SendKeys(Keys.Enter);
                                    Thread.Sleep(5000);
                                    gc.CreatePdf_WOP(orderNumber, "Property Details", driver, "MO", "Jackson");
                                }
                            }
                            if (TRadd_search.Count < 27 && TRadd_search.Count > 3)
                            {
                                gc.CreatePdf_WOP(orderNumber, "Multi Address search result", driver, "MO", "Jackson");
                                HttpContext.Current.Session["MOJackson"] = "Yes";
                                driver.Quit();
                                return("MultiParcel");
                            }
                            if (TRadd_search.Count >= 27 && TRadd_search.Count > 3)
                            {
                                HttpContext.Current.Session["multiParcel_MOJackson_Multicount"] = "Maximum";
                                driver.Quit();
                                return("Maximum");
                            }
                            if (Max == 0)
                            {
                                HttpContext.Current.Session["Nodata_JacksonMO"] = "Yes";
                                driver.Quit();
                                return("No Data Found");
                            }
                        }
                        catch { }
                    }

                    else if (searchType == "parcel")
                    {
                        driver.FindElement(By.Id("mSearchControl_mParcelID")).SendKeys(parcelNumber);
                        gc.CreatePdf(orderNumber, parcelNumber, "parcel search", driver, "MO", "Jackson");
                        driver.FindElement(By.Id("mSearchControl_mSubmit")).SendKeys(Keys.Enter);
                        Thread.Sleep(7000);
                        gc.CreatePdf(orderNumber, parcelNumber, "parcel search Result", driver, "MO", "Jackson");
                        try
                        {
                            //No Data Found
                            string nodata = driver.FindElement(By.Id("mSearchControl_mSearchFieldsValidator")).Text;
                            if (nodata.Contains("does not exist"))
                            {
                                HttpContext.Current.Session["Nodata_JacksonMO"] = "Yes";
                                driver.Quit();
                                return("No Data Found");
                            }
                        }
                        catch { }
                    }
                    try
                    {
                        //No Data Found
                        string nodata = driver.FindElement(By.Id("Table4")).Text;
                        if (nodata.Contains("0 records returned") && nodata.Contains("No Values Found"))
                        {
                            HttpContext.Current.Session["Nodata_JacksonMO"] = "Yes";
                            driver.Quit();
                            return("No Data Found");
                        }
                    }
                    catch { }

                    string bulkdata = driver.FindElement(By.XPath("//*[@id='mTabGroup_Summary_mGeneralInformation_mGrid_RealDataGrid']/table/tbody")).Text;
                    string Property_Address = "", owner_name = "", PropertyDesc = "", PropertyCategory = "", Status = "", TaxCodeArea = "", PropertyClass = "", TaxPayer = "", MortgageCompany = "";
                    string bulkdata1 = driver.FindElement(By.XPath("//*[@id='ParcelSitusTable']/tbody")).Text;
                    parcelNumber     = gc.Between(bulkdata1, "Parcel Number", "Property Address").Trim();
                    Property_Address = GlobalClass.After(bulkdata1, "Property Address").Trim();
                    PropertyDesc     = gc.Between(bulkdata, "Property Description", "Property Category").Trim();
                    PropertyCategory = gc.Between(bulkdata, "Property Category", "Status").Trim().Replace(":", "");
                    Status           = gc.Between(bulkdata, "Status", "Tax Code Area").Trim().Replace(":", "");
                    TaxCodeArea      = GlobalClass.After(bulkdata, "Tax Code Area").Trim().Replace(":", "");
                    try
                    {
                        PropertyClass = driver.FindElement(By.XPath("//*[@id='mTabGroup_Summary_Propertycharacteristics1_mGrid_RealDataGrid']/tbody/tr/td[2]")).Text;
                    }
                    catch { }
                    try
                    {
                        TaxPayer        = driver.FindElement(By.XPath("//*[@id='RealDataGrid']/tbody/tr[2]/td[3]")).Text;
                        owner_name      = driver.FindElement(By.XPath("//*[@id='RealDataGrid']/tbody/tr[3]/td[3]")).Text;
                        MortgageCompany = driver.FindElement(By.XPath("//*[@id='RealDataGrid']/tbody/tr[4]/td[3]")).Text;
                    }
                    catch { }
                    string propertydetails = Property_Address + "~" + PropertyDesc + "~" + PropertyCategory + "~" + Status + "~" + TaxCodeArea + "~" + PropertyClass + "~" + TaxPayer + "~" + owner_name + "~" + MortgageCompany;
                    gc.insert_date(orderNumber, parcelNumber, 1407, propertydetails, 1, DateTime.Now);



                    // Assessment Details

                    string taxyear = "", taxyear1 = "", valuetype = "", taxyear2 = "";
                    try
                    {
                        IWebElement         Assessmentdetails   = driver.FindElement(By.XPath("//*[@id='mTabGroup_Values_mValues_mGrid_RealDataGrid']/tbody"));
                        IList <IWebElement> TRAssessmentdetails = Assessmentdetails.FindElements(By.TagName("tr"));
                        IList <IWebElement> THAssessmentdetails = Assessmentdetails.FindElements(By.TagName("th"));
                        IList <IWebElement> TDAssessmentdetails;
                        foreach (IWebElement row in TRAssessmentdetails)
                        {
                            TDAssessmentdetails = row.FindElements(By.TagName("td"));

                            if (TDAssessmentdetails.Count != 0)
                            {
                                if (!row.Text.Contains("Value Type"))
                                {
                                    valuetype += TDAssessmentdetails[0].Text + "~";
                                }
                                if (!row.Text.Contains("No Values Found"))
                                {
                                    taxyear  += TDAssessmentdetails[1].Text.Replace("Tax Year", "").Replace("\r\n", "") + "~";
                                    taxyear1 += TDAssessmentdetails[2].Text.Replace("Tax Year", "").Replace("\r\n", "") + "~";
                                    taxyear2 += TDAssessmentdetails[3].Text.Replace("Tax Year", "").Replace("\r\n", "") + "~";
                                }
                            }
                        }


                        db.ExecuteQuery("update data_field_master set Data_Fields_Text='" + "Tax Year~" + valuetype.Remove(valuetype.Length - 1, 1) + "' where Id = '" + 1408 + "'");
                        gc.insert_date(orderNumber, parcelNumber, 1408, taxyear.Remove(taxyear.Length - 1, 1), 1, DateTime.Now);
                        gc.insert_date(orderNumber, parcelNumber, 1408, taxyear1.Remove(taxyear1.Length - 1, 1), 1, DateTime.Now);
                        gc.insert_date(orderNumber, parcelNumber, 1408, taxyear2.Remove(taxyear2.Length - 1, 1), 1, DateTime.Now);
                    }
                    catch (Exception ex) { }

                    // Tax Distribution Details



                    string bulkdata2 = driver.FindElement(By.XPath("//*[@id='mTabGroup_Summary_mGeneralInformation_mGrid_RealDataGrid']/table/tbody")).Text;


                    IList <IWebElement> TRTaxInfo1 = driver.FindElements(By.XPath("//*[@id='RealDataGrid']/tbody"));
                    IList <IWebElement> TDTaxInfo1, ValueTaxInfo1;
                    foreach (IWebElement row in TRTaxInfo1)
                    {
                        TDTaxInfo1 = row.FindElements(By.TagName("tr"));
                        if (TRTaxInfo1.Count > 1 && TDTaxInfo1.Count != 0 && row.Text.Contains("District") && row.Text.Trim() != "")
                        {
                            foreach (IWebElement row2 in TDTaxInfo1)
                            {
                                ValueTaxInfo1 = row2.FindElements(By.TagName("td"));

                                if (ValueTaxInfo1.Count > 1 && TDTaxInfo1.Count != 0 && !row2.Text.Contains("District") && row2.Text.Trim() != "" && ValueTaxInfo1.Count() == 2)
                                {
                                    string taxdetails1 = ValueTaxInfo1[0].Text + "~" + ValueTaxInfo1[1].Text;

                                    gc.insert_date(orderNumber, parcelNumber, 1409, taxdetails1, 1, DateTime.Now);
                                }
                            }
                        }
                    }



                    // Tax Payment History Details

                    try
                    {
                        IWebElement         Taxpay   = driver.FindElement(By.XPath("//*[@id='mTabGroup_Receipts_mReceipts_mGrid_RealDataGrid']/tbody"));
                        IList <IWebElement> TRTaxpay = Taxpay.FindElements(By.TagName("tr"));
                        IList <IWebElement> THTaxpay = Taxpay.FindElements(By.TagName("th"));
                        IList <IWebElement> TDTaxpay;
                        foreach (IWebElement row in TRTaxpay)
                        {
                            TDTaxpay = row.FindElements(By.TagName("td"));

                            if (TDTaxpay.Count != 0 && !row.Text.Contains("Receipt No."))
                            {
                                string taxPaymentdetails = TDTaxpay[1].Text + "~" + TDTaxpay[0].Text + "~" + TDTaxpay[2].Text + "~" + TDTaxpay[3].Text + "~" + TDTaxpay[4].Text + "~" + TDTaxpay[5].Text + "~" + TaxingAuthority;
                                gc.insert_date(orderNumber, parcelNumber, 1410, taxPaymentdetails, 1, DateTime.Now);
                            }
                        }
                    }
                    catch { }

                    // Tax Due Details
                    string strInterest = "";
                    try
                    {
                        IWebElement         Taxdue   = driver.FindElement(By.XPath("//*[@id='mGrid_RealDataGrid']/tbody"));
                        IList <IWebElement> TRTaxdue = Taxdue.FindElements(By.TagName("tr"));
                        IList <IWebElement> THTaxdue = Taxdue.FindElements(By.TagName("th"));
                        IList <IWebElement> TDTaxdue;
                        foreach (IWebElement row in TRTaxdue)
                        {
                            TDTaxdue = row.FindElements(By.TagName("td"));

                            if (TDTaxdue.Count != 0 && !row.Text.Contains("Cumulative Due"))
                            {
                                string taxPaymentdetails = TDTaxdue[0].Text + "~" + TDTaxdue[1].Text + "~" + TDTaxdue[2].Text + "~" + TDTaxdue[3].Text + "~" + TDTaxdue[4].Text + "~" + TDTaxdue[5].Text + "~" + TDTaxdue[6].Text;
                                gc.insert_date(orderNumber, parcelNumber, 1419, taxPaymentdetails, 1, DateTime.Now);
                            }
                            if (TDTaxdue.Count != 0 && !row.Text.Contains("Cumulative Due") && TDTaxdue[4].Text != "0.00")
                            {
                                strInterest = "Delinquent";
                            }
                        }
                    }
                    catch { }

                    // Delinquent Search

                    string asofdate = "", Good_through_date = "";


                    if (strInterest == "Delinquent")
                    {
                        try
                        {
                            driver.FindElement(By.LinkText("Calculate Future Payoff")).SendKeys(Keys.Enter);
                            Thread.Sleep(4000);
                            gc.CreatePdf(orderNumber, parcelNumber, "Calculate Pay off", driver, "MO", "Jackson");
                        }
                        catch { }



                        try
                        {
                            //Good Through Details

                            IWebElement good_date = driver.FindElement(By.Id("mFuturePayoff_mDate"));
                            Good_through_date = good_date.GetAttribute("value");
                            if (Good_through_date.Contains("Select A Date"))
                            {
                                Good_through_date = "-";
                            }
                            else
                            {
                                DateTime G_Date       = Convert.ToDateTime(Good_through_date);
                                string   dateChecking = DateTime.Now.ToString("MM") + "/15/" + DateTime.Now.ToString("yyyy");

                                if (G_Date < Convert.ToDateTime(dateChecking))
                                {
                                    //end of the month
                                    Good_through_date = new DateTime(Convert.ToInt16(DateTime.Now.ToString("yyyy")), Convert.ToInt16(Convert.ToInt16(DateTime.Now.ToString("MM"))), DateTime.DaysInMonth(Convert.ToInt16(DateTime.Now.ToString("yyyy")), Convert.ToInt16(DateTime.Now.ToString("MM")))).ToString("MM/dd/yyyy");
                                }
                                else if (G_Date > Convert.ToDateTime(dateChecking))
                                {
                                    // nextEndOfMonth
                                    if ((Convert.ToInt16(Convert.ToInt16(DateTime.Now.ToString("MM"))) < 12))
                                    {
                                        Good_through_date = new DateTime(Convert.ToInt16(DateTime.Now.ToString("yyyy")), Convert.ToInt16(Convert.ToInt16(DateTime.Now.ToString("MM")) + 1), DateTime.DaysInMonth(Convert.ToInt16(DateTime.Now.ToString("yyyy")), Convert.ToInt16(DateTime.Now.ToString("MM")) + 1)).ToString("MM/dd/yyyy");
                                    }
                                    else
                                    {
                                        int nxtYr = Convert.ToInt16(DateTime.Now.ToString("yyyy")) + 1;
                                        Good_through_date = new DateTime(nxtYr, 1, DateTime.DaysInMonth(Convert.ToInt16(DateTime.Now.ToString("yyyy")), 1)).ToString("MM/dd/yyyy");
                                    }
                                }
                                driver.FindElement(By.Id("mFuturePayoff_mDate")).Clear();
                                Thread.Sleep(1000);
                                try
                                {
                                    driver.FindElement(By.XPath("//*[@id='mFuturePayoff_mDate']")).SendKeys(Good_through_date);
                                    Thread.Sleep(2000);
                                }
                                catch { }
                            }
                        }
                        catch
                        { }
                        try
                        {
                            driver.FindElement(By.Id("mFuturePayoff_mCalculate")).SendKeys(Keys.Enter);
                            Thread.Sleep(7000);
                            gc.CreatePdf(orderNumber, parcelNumber, "Good Through Date", driver, "MO", "Jackson");
                        }
                        catch { }
                        try
                        {
                            IWebElement         currenttax   = driver.FindElement(By.XPath("//*[@id='mFuturePayoff_mGrid_RealDataGrid']/tbody"));
                            IList <IWebElement> TRcurrenttax = currenttax.FindElements(By.TagName("tr"));
                            IList <IWebElement> THcurrenttax = currenttax.FindElements(By.TagName("th"));
                            IList <IWebElement> TDcurrenttax;
                            foreach (IWebElement row in TRcurrenttax)
                            {
                                TDcurrenttax = row.FindElements(By.TagName("td"));

                                if (TDcurrenttax.Count != 0 && !row.Text.Contains("Principal"))
                                {
                                    string taxPaymentdetails = Good_through_date + "~" + TDcurrenttax[0].Text + "~" + TDcurrenttax[1].Text + "~" + TDcurrenttax[2].Text;
                                    gc.insert_date(orderNumber, parcelNumber, 1483, taxPaymentdetails, 1, DateTime.Now);
                                }
                            }
                        }
                        catch { }
                        try
                        {
                            driver.FindElement(By.LinkText("Property Summary")).SendKeys(Keys.Enter);
                            Thread.Sleep(4000);
                        }
                        catch { }
                    }
                    try
                    {
                        driver.FindElement(By.LinkText("View Detailed Statement")).SendKeys(Keys.Enter);
                        Thread.Sleep(7000);
                        gc.CreatePdf(orderNumber, parcelNumber, "View Detailed Statement", driver, "MO", "Jackson");
                    }
                    catch { }



                    CitytaxTime = DateTime.Now.ToString("HH:mm:ss");

                    LastEndTime = DateTime.Now.ToString("HH:mm:ss");
                    gc.insert_TakenTime(orderNumber, "MO", "Jackson", StartTime, AssessmentTime, TaxTime, CitytaxTime, LastEndTime);

                    driver.Quit();
                    gc.mergpdf(orderNumber, "MO", "Jackson");
                    return("Data Inserted Successfully");
                }

                catch (Exception ex)
                {
                    driver.Quit();
                    GlobalClass.LogError(ex, orderNumber);
                    throw ex;
                }
            }
        }
Beispiel #16
0
        public string FTP_Bell(string houseno, string sname, string stype, string unitno, string direction, string ownername, string parcelNumber, string searchType, string orderNumber, string directParcel)
        {
            GlobalClass.global_orderNo             = orderNumber;
            HttpContext.Current.Session["orderNo"] = orderNumber;
            GlobalClass.global_parcelNo            = parcelNumber;
            List <string> taxinformation = new List <string>();
            string        StartTime = "", AssessmentTime = "", TaxTime = "", CitytaxTime = "", LastEndTime = "";
            var           driverService = PhantomJSDriverService.CreateDefaultService();

            driverService.HideCommandPromptWindow = true;
            //driver = new ChromeDriver()
            //driver = new PhantomJSDriver()
            using (driver = new PhantomJSDriver())
            {
                try
                {
                    StartTime = DateTime.Now.ToString("HH:mm:ss");
                    driver.Navigate().GoToUrl("http://esearch.bellcad.org/");
                    //IJavaScriptExecutor js2 = driver as IJavaScriptExecutor;
                    //IWebElement ParcelLinkSearch1 = driver.FindElement(By.XPath("//*[@id='home-page-tabs']/li[5]"));
                    //js2.ExecuteScript("arguments[0].click();", ParcelLinkSearch1);
                    driver.FindElement(By.XPath("//*[@id='home-page-tabs']/li[5]")).Click();
                    Thread.Sleep(2000);
                    // driver.FindElement(By.Id("propertySearchOptions_advanced")).Click();
                    if (searchType == "titleflex")
                    {
                        string titleaddress = houseno + " " + sname + " " + stype + " " + unitno;
                        gc.TitleFlexSearch(orderNumber, "", "", titleaddress, "TX", "Bell");
                        if ((HttpContext.Current.Session["TitleFlex_Search"] != null && HttpContext.Current.Session["TitleFlex_Search"].ToString() == "Yes"))
                        {
                            driver.Quit();
                            return("MultiParcel");
                        }
                        else if (HttpContext.Current.Session["titleparcel"].ToString() == "")
                        {
                            HttpContext.Current.Session["Nodata_BellTX"] = "Zero";
                            driver.Quit();
                            return("No Data Found");
                        }
                        parcelNumber = HttpContext.Current.Session["titleparcel"].ToString();
                        searchType   = "parcel";
                    }

                    if (searchType == "address")
                    {
                        //var Select1 = driver.FindElement(By.Id("propertySearchOptions_searchType"));
                        //var selectElement11 = new SelectElement(Select1);
                        //selectElement11.SelectByText("Property Address");
                        driver.FindElement(By.Id("StreetNumber")).SendKeys(houseno);
                        driver.FindElement(By.Id("StreetName")).SendKeys(sname);
                        gc.CreatePdf_WOP(orderNumber, "address search", driver, "TX", "Bell");
                        driver.FindElement(By.XPath("//*[@id='index-search']/div[4]/div/div/button")).Click();
                        Thread.Sleep(2000);
                        gc.CreatePdf_WOP(orderNumber, "address search result", driver, "TX", "Bell");
                    }
                    if (searchType == "parcel")
                    {
                        //var Select1 = driver.FindElement(By.Id("propertySearchOptions_searchType"));
                        //var selectElement11 = new SelectElement(Select1);
                        //selectElement11.SelectByText("Account Number");
                        driver.FindElement(By.Id("GeoId")).SendKeys(parcelNumber);
                        gc.CreatePdf(orderNumber, parcelNumber, "Parcel search", driver, "TX", "Bell");
                        driver.FindElement(By.XPath("//*[@id='index-search']/div[4]/div/div/button")).Click();
                        Thread.Sleep(2000);
                        gc.CreatePdf(orderNumber, parcelNumber, "Parcel search result", driver, "TX", "Bell");
                    }

                    if (searchType == "ownername")
                    {
                        driver.FindElement(By.Id("OwnerName")).SendKeys(ownername);
                        gc.CreatePdf_WOP(orderNumber, "owner search", driver, "TX", "Bell");
                        driver.FindElement(By.XPath("//*[@id='index-search']/div[4]/div/div/button")).Click();
                        Thread.Sleep(2000);
                        gc.CreatePdf_WOP(orderNumber, "owner search result", driver, "TX", "Bell");
                    }
                    if (searchType == "block")
                    {
                        //var Select1 = driver.FindElement(By.Id("propertySearchOptions_searchType"));
                        //var selectElement11 = new SelectElement(Select1);
                        //selectElement11.SelectByText("Account Number");
                        driver.FindElement(By.Id("PropertyId")).SendKeys(unitno);
                        gc.CreatePdf_WOP(orderNumber, "Account Number Search ", driver, "TX", "Bell");
                        driver.FindElement(By.XPath("//*[@id='index-search']/div[4]/div/div/button")).Click();
                        Thread.Sleep(2000);
                        gc.CreatePdf_WOP(orderNumber, "Account Number Search  result", driver, "TX", "Bell");

                        //       gc.CreatePdf_WOP(orderNumber, "owner search result", driver, "TX", "Williamson");
                    }
                    //Geographic ID~Type~Property Address~Owner Name
                    //*[@id="propertySearchResults_resultsTable"]/tbody


                    try
                    {
                        IWebElement INodata = driver.FindElement(By.Id("propertySearchResults_pageHeading"));
                        if (INodata.Text.Contains("None found"))
                        {
                            HttpContext.Current.Session["Nodata_BellTX"] = "Zero";
                            driver.Quit();
                            return("No Data Found");
                        }
                    }
                    catch { }

                    int trCount = driver.FindElements(By.XPath("//*[@id='grid']/div[2]/table/tbody")).Count;
                    if (trCount > 1)
                    {
                        int                 maxCheck = 0;
                        IWebElement         tbmulti  = driver.FindElement(By.XPath("//*[@id='propertySearchResults_resultsTable']/tbody"));
                        IList <IWebElement> TRmulti5 = tbmulti.FindElements(By.TagName("tr"));
                        IList <IWebElement> TDmulti5;
                        foreach (IWebElement row in TRmulti5)
                        {
                            if (maxCheck <= 25)
                            {
                                TDmulti5 = row.FindElements(By.TagName("td"));
                                if (TDmulti5.Count == 10 && TDmulti5[3].Text.Contains("Real"))
                                {
                                    string multi1 = TDmulti5[2].Text + "~" + TDmulti5[3].Text + "~" + TDmulti5[4].Text + "~" + TDmulti5[6].Text;
                                    gc.insert_date(orderNumber, TDmulti5[1].Text, 846, multi1, 1, DateTime.Now);
                                }
                                maxCheck++;
                            }
                        }
                        if (TRmulti5.Count > 25)
                        {
                            HttpContext.Current.Session["multiParcel_Bell_Multicount"] = "Maximum";
                        }
                        else
                        {
                            HttpContext.Current.Session["multiparcel_Bell"] = "Yes";
                        }

                        driver.Quit();
                        return("MultiParcel");
                    }
                    else
                    {
                        string type = driver.FindElement(By.XPath("//*[@id='grid']/div[2]/table/tbody/tr/td[6]")).Text.Replace("\r\n", " ");
                        if (type == "Real")
                        {
                            //*[@id="propertySearchResults_resultsTable"]/tbody/tr[2]/td[10]
                            driver.FindElement(By.XPath("//*[@id='grid']/div[2]/table/tbody/tr/td[4]")).Click();
                            Thread.Sleep(2000);
                        }
                        else
                        {
                            HttpContext.Current.Session["alert_msg"] = "Yes";
                            driver.Quit();
                            return("MultiParcel");
                        }
                    }
                    //property details
                    string PropertyID = "", GeographicID = "", Name = "", MailingAddress = "", OwnerID = "", LegalDescription = "", Neighborhood = "", Type = "", Address = "", NeighborhoodCD = "", Exemptions = "", MapID = "", YearBuilt = "", Acres = "";
                    string ownerdetails = "";
                    string asd          = "";
                    //Property ID~Geographic ID~Name~Mailing Address~Owner ID~Mailing Address~Owner ID~Type~Legal Description~Address~Neighborhood~Neighborhood CD~Map ID~Exemptions~Year Built~Acres~Tax Authority


                    string fulltext = driver.FindElement(By.XPath("//*[@id='detail-page']/div[3]/div[1]/div/table/tbody")).Text.Replace("\r\n", " ");
                    PropertyID   = gc.Between(fulltext, "Property ID:", "Legal Description:");
                    GeographicID = gc.Between(fulltext, "Geographic ID:", "Agent Code:");
                    gc.CreatePdf(orderNumber, GeographicID.Trim(), "property details", driver, "TX", "Bell");
                    LegalDescription = gc.Between(fulltext, "Legal Description:", "Geographic ID:");
                    Name             = gc.Between(fulltext, "Name:", "Mailing Address:");
                    MailingAddress   = gc.Between(fulltext, "Mailing Address:", "% Ownership:");
                    Exemptions       = GlobalClass.After(fulltext, "Exemptions:");
                    OwnerID          = gc.Between(fulltext, "Owner ID:", "Name:");

                    Neighborhood   = gc.Between(fulltext, "Neighborhood CD:", "Owner");
                    Type           = gc.Between(fulltext, "Type:", "Location");
                    Address        = gc.Between(fulltext, "Address:", "Map ID:");
                    NeighborhoodCD = gc.Between(fulltext, "Neighborhood CD:", "Owner");

                    MapID = gc.Between(fulltext, "Map ID:", "Neighborhood CD:");
                    //*[@id="improvementBuilding"]
                    //driver.FindElement(By.XPath("//*[@id='improvementBuilding']")).Click();
                    //Thread.Sleep(2000);
                    try
                    {
                        YearBuilt = driver.FindElement(By.XPath("//*[@id='detail-page']/div[5]/div[2]/table[1]/tbody/tr[2]/td[5]")).Text;
                    }
                    catch { }
                    //driver.FindElement(By.Id("land")).Click();
                    //Thread.Sleep(2000);
                    //try
                    //{
                    //    Acres = driver.FindElement(By.XPath("//*[@id='landDetails']/table/tbody/tr[2]/td[4]")).Text;
                    //}
                    //catch { }
                    string property_details = PropertyID + "~" + Name + "~" + MailingAddress + "~" + OwnerID + "~" + Type + "~" + LegalDescription + "~" + Address + "~" + Neighborhood + "~" + NeighborhoodCD + "~" + MapID + "~" + Exemptions + "~" + YearBuilt + "~" + "P.O.Box 390 Belton, TX 76513 Phone Number:  254 - 939 - 5841";
                    gc.insert_date(orderNumber, GeographicID, 841, property_details, 1, DateTime.Now);

                    //    Assessment Details Table:

                    //  Values Details Table:
                    //Description~Sign~Value1~Value2
                    //driver.FindElement(By.Id("values")).Click();
                    //Thread.Sleep(2000);
                    string Propertyhead   = "";
                    string Propertyresult = "";
                    //*[@id="detail-page"]/div[3]/div[2]/div[1]/table/tbody
                    IWebElement         multitableElement1 = driver.FindElement(By.XPath(" //*[@id='detail-page']/div[3]/div[2]/div[1]/table/tbody"));
                    IList <IWebElement> multitableRow1     = multitableElement1.FindElements(By.TagName("tr"));
                    IList <IWebElement> multirowTD1;
                    IList <IWebElement> multirowTH1;
                    foreach (IWebElement row in multitableRow1)
                    {
                        multirowTH1 = row.FindElements(By.TagName("tH"));
                        multirowTD1 = row.FindElements(By.TagName("td"));
                        if (multirowTD1.Count != 0 && multirowTD1[0].Text != " ")
                        {
                            Propertyhead   += multirowTH1[0].Text;
                            Propertyresult += multirowTD1[0].Text;
                            //gc.insert_date(orderNumber, PropertyID, 844, ValueDetails, 1, DateTime.Now);
                        }
                    }
                    db.ExecuteQuery("update data_field_master set Data_Fields_Text='" + Propertyhead + "' where Id = '" + 844 + "'");
                    gc.insert_date(orderNumber, PropertyID, 844, Propertyresult, 1, DateTime.Now);
                    //Taxing Jurisdiction Details Table:
                    //Owner~% Ownership~Total Value~Entity~Description~Tax Rate~Appraised Value~Taxable Value~Estimated Tax
                    //driver.FindElement(By.Id("taxingJurisdiction")).Click();
                    //Thread.Sleep(2000);
                    //string owner = "", Ownership = "", TotalValue = "";
                    string ValueDetails1 = "", msg = "";
                    //string fulltext1 = driver.FindElement(By.XPath("//*[@id='taxingJurisdictionDetails']/table[1]/tbody")).Text.Replace("\r\n", " ");
                    List <string> myList            = new List <string>();
                    string        Totaltax          = driver.FindElement(By.XPath("//*[@id='detail-page']/div[4]/div[3]")).Text;
                    string        TotalTaxRate      = gc.Between(Totaltax, "Total Tax Rate:", "Estimated Taxes With Exemptions:");
                    string        EstimatedTaxes    = gc.Between(Totaltax, "With Exemptions:", "Without Exemptions:");
                    string        WithoutExemptions = GlobalClass.After(Totaltax, "Without Exemptions:");
                    string        totalresult       = TotalTaxRate + "~" + EstimatedTaxes + "~" + WithoutExemptions;
                    gc.insert_date(orderNumber, PropertyID, 2080, totalresult, 1, DateTime.Now);

                    IWebElement         multitableElement11 = driver.FindElement(By.XPath("//*[@id='detail-page']/div[4]/div[2]/table/tbody"));
                    IList <IWebElement> multitableRow11     = multitableElement11.FindElements(By.TagName("tr"));
                    IList <IWebElement> multirowTD11;
                    foreach (IWebElement row in multitableRow11)
                    {
                        multirowTD11 = row.FindElements(By.TagName("td"));
                        if (multirowTD11.Count != 0)
                        {
                            ValueDetails1 = multirowTD11[0].Text + "~" + multirowTD11[1].Text + "~" + multirowTD11[2].Text + "~" + multirowTD11[3].Text + "~" + multirowTD11[4].Text + "~" + multirowTD11[5].Text + "~" + multirowTD11[6].Text;
                            gc.insert_date(orderNumber, PropertyID, 843, ValueDetails1, 1, DateTime.Now);
                        }
                    }

                    // Property Roll Value History:
                    //Year~Improvements~Land Market~Ag Valuation~Appraised~HS Cap~Assessed
                    //driver.FindElement(By.Id("rollHistory")).Click();
                    //Thread.Sleep(2000);

                    IWebElement         multitableElement2 = driver.FindElement(By.XPath("//*[@id='detail-page']/div[7]/div[2]/table/tbody"));
                    IList <IWebElement> multitableRow2     = multitableElement2.FindElements(By.TagName("tr"));
                    IList <IWebElement> multirowTD2;
                    foreach (IWebElement row in multitableRow2)
                    {
                        multirowTD2 = row.FindElements(By.TagName("td"));
                        if (multirowTD2.Count != 0)
                        {
                            string rollDetails = multirowTD2[0].Text.Trim() + "~" + multirowTD2[1].Text.Trim() + "~" + multirowTD2[2].Text.Trim() + "~" + multirowTD2[3].Text.Trim() + "~" + multirowTD2[4].Text.Trim() + "~" + multirowTD2[5].Text.Trim() + "~" + multirowTD2[6].Text.Trim();
                            gc.insert_date(orderNumber, PropertyID, 842, rollDetails, 1, DateTime.Now);
                        }
                    }
                    //Tax Deed
                    IWebElement         DeedHistoryTable = driver.FindElement(By.XPath("//*[@id='detail-page']/div[7]/div[2]/table/tbody"));
                    IList <IWebElement> DeedHistoryRow   = DeedHistoryTable.FindElements(By.TagName("tr"));
                    IList <IWebElement> DeedHistoryTD;
                    foreach (IWebElement DeedHistory in DeedHistoryRow)
                    {
                        DeedHistoryTD = DeedHistory.FindElements(By.TagName("td"));
                        if (DeedHistoryTD.Count != 0)
                        {
                            string rollDetails = DeedHistoryTD[0].Text.Trim() + "~" + DeedHistoryTD[1].Text.Trim() + "~" + DeedHistoryTD[2].Text.Trim() + "~" + DeedHistoryTD[3].Text.Trim() + "~" + DeedHistoryTD[4].Text.Trim() + "~" + DeedHistoryTD[5].Text.Trim() + "~" + DeedHistoryTD[6].Text.Trim();
                            gc.insert_date(orderNumber, PropertyID, 2081, rollDetails, 1, DateTime.Now);
                        }
                    }
                    //Tax Due (Payoff Calculation) Details Table:


                    //driver.FindElement(By.Id("taxDue")).Click();
                    //Thread.Sleep(2000);
                    string msgdeli = "", taxdue = "";
                    //int count = driver.FindElements(By.XPath("//*[@id='taxDueDetails_dataSection']/table/tbody/tr")).Count();
                    taxdue = driver.FindElement(By.XPath("//*[@id='taxesDue']/table/tbody")).Text;

                    if (taxdue.Contains("Pay"))
                    {
                        // IWebElement dt = driver.FindElement(By.Id("taxesDueDate"));
                        string date = DateTime.Now.ToString();

                        DateTime G_Date       = Convert.ToDateTime(date);
                        string   dateChecking = DateTime.Now.ToString("MM") + "/15/" + DateTime.Now.ToString("yyyy");

                        if (G_Date < Convert.ToDateTime(dateChecking))
                        {
                            //end of the month
                            date = new DateTime(Convert.ToInt16(DateTime.Now.ToString("yyyy")), Convert.ToInt16(Convert.ToInt16(DateTime.Now.ToString("MM"))), DateTime.DaysInMonth(Convert.ToInt16(DateTime.Now.ToString("yyyy")), Convert.ToInt16(DateTime.Now.ToString("MM")))).ToString("MM/dd/yyyy");
                        }

                        else if (G_Date > Convert.ToDateTime(dateChecking))
                        {
                            // nextEndOfMonth
                            if ((Convert.ToInt16(Convert.ToInt16(DateTime.Now.ToString("MM"))) < 12))
                            {
                                date = new DateTime(Convert.ToInt16(DateTime.Now.ToString("yyyy")), Convert.ToInt16(Convert.ToInt16(DateTime.Now.ToString("MM")) + 1), DateTime.DaysInMonth(Convert.ToInt16(DateTime.Now.ToString("yyyy")), Convert.ToInt16(DateTime.Now.ToString("MM")) + 1)).ToString("MM/dd/yyyy");
                            }
                            else
                            {
                                int nxtYr = Convert.ToInt16(DateTime.Now.ToString("yyyy")) + 1;
                                date = new DateTime(nxtYr, 1, DateTime.DaysInMonth(Convert.ToInt16(DateTime.Now.ToString("yyyy")), 1)).ToString("MM/dd/yyyy");
                            }
                        }
                        Thread.Sleep(2000);
                        // dt.Clear();
                        driver.FindElement(By.Id("taxesDueDate")).SendKeys(date);
                        driver.FindElement(By.Id("taxesDueDate")).Click();
                        Thread.Sleep(4000);
                    }
                    //string goodthroughdate = driver.FindElement(By.Id("taxDueDetails_recalculateDate")).Text;
                    //string payoff1 = goodthroughdate + "~" + "" + "~" + "" + "~" + "" + "~" + "" + "~" + "" + "~" + "" + "~" + "" + "~" + "" + "~" + "";
                    //gc.insert_date(orderNumber, PropertyID, 845, payoff1, 1, DateTime.Now);

                    //string yearnow = driver.FindElement(By.XPath("//*[@id='taxDueDetails_dataSection']/table/tbody/tr[2]/td[1]")).Text;
                    ////Amount Due if Paid on~Year~Taxing Jurisdiction~Taxable Value~Base Tax~Base Taxes Paid~Base Tax Due~Discount / Penalty & Interest~Attorney Fees~Amount Due
                    //IWebElement multitableElement5 = driver.FindElement(By.XPath("//*[@id='taxDueDetails_dataSection']/table/tbody"));
                    //IList<IWebElement> multitableRow5 = multitableElement5.FindElements(By.TagName("tr"));
                    //IList<IWebElement> multirowTD5;
                    //foreach (IWebElement row in multitableRow5)
                    //{
                    //    multirowTD5 = row.FindElements(By.TagName("td"));
                    //    if (multirowTD5.Count != 0)
                    //    {
                    //        if (multirowTD5[0].Text == yearnow)
                    //        {
                    //            if (myList.Any(str => str.Contains(multirowTD5[1].Text)))
                    //            {
                    //                myList.RemoveAt(myList.IndexOf(multirowTD5[1].Text));

                    //            }
                    //        }
                    //        int countlist = myList.Count();
                    //        string payoff11 = "" + "~" + multirowTD5[0].Text.Trim() + "~" + multirowTD5[1].Text.Trim() + "~" + multirowTD5[2].Text.Trim() + "~" + multirowTD5[3].Text.Trim() + "~" + multirowTD5[4].Text.Trim() + "~" + multirowTD5[5].Text.Trim() + "~" + multirowTD5[6].Text.Trim() + "~" + multirowTD5[7].Text.Trim() + "~" + multirowTD5[8].Text.Trim();
                    //        gc.insert_date(orderNumber, PropertyID, 845, payoff11, 1, DateTime.Now);
                    //    }
                    //}
                    //string entity = "";
                    //if (myList.Count() > 0)
                    //{
                    //    for (int i = 0; i < myList.Count(); i++)
                    //    {
                    //        if (i == 0)
                    //        {
                    //            entity = myList[i];
                    //        }
                    //        else
                    //        {
                    //            entity = entity + "&" + myList[i];
                    //        }
                    //    }
                    //    string msged = entity + "~" + "Need to call Tax Office";
                    //    gc.insert_date(orderNumber, PropertyID, 893, msged, 1, DateTime.Now);
                    //}
                    //gc.CreatePdf(orderNumber, PropertyID, "property details", driver, "TX", "Bell");
                    // Taxing Jurisdiction
                    IWebElement         multitableElement5 = driver.FindElement(By.XPath("//*[@id='taxesDue']/table/tbody"));
                    IList <IWebElement> multitableRow5 = multitableElement5.FindElements(By.TagName("tr"));
                    IList <IWebElement> multirowTD5;
                    IList <IWebElement> multirowTH5;
                    foreach (IWebElement row in multitableRow5)
                    {
                        multirowTD5 = row.FindElements(By.TagName("td"));
                        multirowTH5 = row.FindElements(By.TagName("th"));
                        if (multirowTD5.Count > 1 && !row.Text.Contains("Taxing Jurisdiction") && multirowTH5.Count != 1)
                        {
                            string Taxresult = multirowTD5[0].Text + "~" + multirowTD5[1].Text + "~" + multirowTD5[2].Text + "~" + multirowTD5[3].Text + "~" + multirowTD5[4].Text + "~" + multirowTD5[5].Text + "~" + multirowTD5[6].Text + "~" + multirowTD5[7].Text + "~" + multirowTD5[8].Text;
                            gc.insert_date(orderNumber, PropertyID, 845, Taxresult, 1, DateTime.Now);
                        }
                        if (multirowTD5.Count != 0 && multirowTH5.Count == 1)
                        {
                            string Taxresult = multirowTD5[0].Text + "~" + multirowTH5[0].Text + "~" + multirowTD5[1].Text + "~" + multirowTD5[2].Text + "~" + multirowTD5[3].Text + "~" + multirowTD5[4].Text + "~" + multirowTD5[5].Text + "~" + multirowTD5[6].Text + "~" + multirowTD5[7].Text;
                            gc.insert_date(orderNumber, PropertyID, 845, Taxresult, 1, DateTime.Now);
                        }
                    }

                    AssessmentTime = DateTime.Now.ToString("HH:mm:ss");

                    LastEndTime = DateTime.Now.ToString("HH:mm:ss");
                    gc.insert_TakenTime(orderNumber, "TX", "Bell", StartTime, AssessmentTime, TaxTime, CitytaxTime, LastEndTime);
                    driver.Quit();
                    GlobalClass.titleparcel = "";
                    gc.mergpdf(orderNumber, "TX", "Bell");
                    return("Data Inserted Successfully");
                }
                catch (Exception ex)
                {
                    driver.Quit();
                    driver.Dispose();
                    throw ex;
                }
            }
        }
        public string FTP_YavapaiAZ(string address, string parcelNumber, string ownername, string searchType, string orderNumber, string directParcel)
        {
            GlobalClass.global_orderNo             = orderNumber;
            HttpContext.Current.Session["orderNo"] = orderNumber;
            GlobalClass.global_parcelNo            = parcelNumber;
            List <string> taxinformation = new List <string>();
            string        StartTime = "", AssessmentTime = "", TaxTime = "", CitytaxTime = "", LastEndTime = "";
            string        As_of = "", Total_Due = "", MillLevy = "", Class = "", Built = "";
            List <string> pdflink = new List <string>();
            string        Parcel_number = "", Tax_Authority = "", type = "", AddressCombain = "", Addresshrf = "", Pin = "", Multiaddressadd = "", MailingAddress = "", Constructed = "";
            var           driverService = PhantomJSDriverService.CreateDefaultService();

            driverService.HideCommandPromptWindow = true;
            //driver = new PhantomJSDriver();
            //driver = new ChromeDriver()
            using (driver = new PhantomJSDriver())
            {
                StartTime = DateTime.Now.ToString("HH:mm:ss");
                try
                {
                    if (searchType == "titleflex")
                    {
                        gc.TitleFlexSearch(orderNumber, "", ownername, address, "AZ", "Yavapai");
                        if (HttpContext.Current.Session["TitleFlex_Search"] != null && HttpContext.Current.Session["TitleFlex_Search"].Equals("Yes"))
                        {
                            driver.Quit();
                            return("MultiParcel");
                        }
                        else if (HttpContext.Current.Session["titleparcel"].ToString() == "")
                        {
                            HttpContext.Current.Session["Nodata_Yavapai"] = "Zero";
                            driver.Quit();
                            return("No Data Found");
                        }
                        parcelNumber = HttpContext.Current.Session["titleparcel"].ToString();
                        searchType   = "parcel";
                    }
                    driver.Navigate().GoToUrl("http://gis.yavapai.us/v4/");
                    try
                    {
                        driver.FindElement(By.XPath("//*[@id='Disclaimer_tab']/input")).Click();
                        Thread.Sleep(2000);
                    }
                    catch { }
                    try
                    {
                        driver.FindElement(By.Id("tabCondiv_tablist_search_tab")).Click();
                        Thread.Sleep(2000);
                    }
                    catch { }
                    if (searchType == "address")
                    {
                        driver.FindElement(By.Id("p_search")).SendKeys(address);
                        gc.CreatePdf_WOP(orderNumber, "Address Search", driver, "AZ", "Yavapai");
                        driver.FindElement(By.Id("search")).Click();
                        Thread.Sleep(2000);
                        gc.CreatePdf_WOP(orderNumber, "Address After", driver, "AZ", "Yavapai");
                        try
                        {
                            string Nodata = driver.FindElement(By.Id("alertmsg")).Text;
                            if (Nodata.Contains("Sorry, no records for"))
                            {
                                HttpContext.Current.Session["Nodata_Yavapai"] = "Zero";
                                driver.Quit();
                                return("No Data Found");
                            }
                        }
                        catch { }
                        try
                        {
                            int                 J = 0; int z = 0;
                            IWebElement         IMulti    = driver.FindElement(By.XPath("//*[@id='results_Status']/table/tbody"));
                            IList <IWebElement> IMultirow = IMulti.FindElements(By.XPath("tr"));
                            gc.CreatePdf_WOP(orderNumber, "Multi Parcel", driver, "AZ", "Yavapai");
                            IList <IWebElement> IMultitd;
                            foreach (IWebElement row in IMultirow)
                            {
                                IMultitd = row.FindElements(By.TagName("td"));
                                if (IMultitd.Count != 0 && row.Text.Trim() != "")
                                {
                                    if (J == 1)
                                    {
                                        Pin = IMultitd[0].Text;
                                        z++;
                                    }
                                    if (J == 0)
                                    {
                                        AddressCombain = IMultitd[0].Text;
                                        J++;
                                    }
                                }
                                if (z == 1)
                                {
                                    gc.insert_date(orderNumber, Pin, 1863, AddressCombain, 1, DateTime.Now);
                                    J = 0;
                                    z = 0;
                                }
                            }
                            if (IMultirow.Count < 26)
                            {
                                HttpContext.Current.Session["multiParcel_Yavapai"] = "Yes";
                                driver.Quit();
                                return("MultiParcel");
                            }
                            if (IMultirow.Count > 25)
                            {
                                HttpContext.Current.Session["multiParcel_Yavapai_Maximum"] = "Maximum";
                                driver.Quit();
                                return("MultiParcel");
                            }
                        }
                        catch { }
                    }
                    if (searchType == "parcel")
                    {
                        driver.FindElement(By.XPath("//*[@id='parcSearch_titleBarNode']/div/span[3]")).Click();
                        Thread.Sleep(2000);
                        string[] arryparcel = parcelNumber.Split('-');
                        driver.FindElement(By.Id("par_book")).SendKeys(arryparcel[0]);
                        driver.FindElement(By.Id("par_map")).SendKeys(arryparcel[1]);
                        driver.FindElement(By.Id("par_par")).SendKeys(arryparcel[1]);
                        driver.FindElement(By.Id("par_submit")).Click();
                        Thread.Sleep(2000);
                        try
                        {
                            string Nodata = driver.FindElement(By.Id("alertmsg")).Text;
                            if (Nodata.Contains("Sorry, no records for"))
                            {
                                HttpContext.Current.Session["Nodata_Yavapai"] = "Zero";
                                driver.Quit();
                                return("No Data Found");
                            }
                        }
                        catch { }
                    }
                    string parcelno = driver.FindElement(By.XPath("//*[@id='results_Status']/h3/i")).Text;
                    Parcel_number = GlobalClass.After(parcelno, "Information for Parcel").Replace(":", "");
                    string owner         = driver.FindElement(By.Id("owner_name")).Text;
                    string proaddress1   = driver.FindElement(By.Id("owner_address")).Text;
                    string proaddress2   = driver.FindElement(By.XPath("//*[@id='resOwner_pane']/table/tbody/tr[4]/td")).Text;
                    string proaddress    = proaddress1 + " " + proaddress2;
                    string AssessorAcres = driver.FindElement(By.Id("dorAcres")).Text;
                    string subdivision   = driver.FindElement(By.Id("subdiv")).Text;
                    string Maptype       = driver.FindElement(By.Id("subdivType")).Text;
                    string countyzoning  = "";
                    try
                    {
                        countyzoning = driver.FindElement(By.Id("ctyZoneViol")).Text;
                    }
                    catch { }
                    try
                    {
                        if (countyzoning == "")
                        {
                            countyzoning = driver.FindElement(By.Id("ctyZoneType")).Text;
                        }
                    }
                    catch { }
                    string sectionTownship  = driver.FindElement(By.Id("str")).Text;
                    string Homestead        = driver.FindElement(By.Id("HES")).Text;
                    string IncorporatedArea = driver.FindElement(By.Id("inc_area")).Text;
                    string Tracts           = driver.FindElement(By.Id("tract")).Text;
                    gc.CreatePdf(orderNumber, Parcel_number, "Property Detail", driver, "AZ", "Yavapai");
                    driver.FindElement(By.XPath("//*[@id='resImps_titleBarNode']/div")).Click();
                    Thread.Sleep(2000);
                    gc.CreatePdf(orderNumber, Parcel_number, "Constructed Pdf", driver, "AZ", "Yavapai");
                    try
                    {
                        string type1 = driver.FindElement(By.Id("imps")).Text;
                        type        = gc.Between(type1, "Type:", "Floor area:");
                        Constructed = GlobalClass.After(type1, "Constructed:");
                    }
                    catch { }
                    string Proresult = owner + "~" + proaddress + "~" + AssessorAcres + "~" + subdivision + "~" + Maptype + "~" + countyzoning + "~" + sectionTownship + "~" + Homestead + "~" + IncorporatedArea + "~" + Tracts + "~" + type + "~" + Constructed;
                    gc.insert_date(orderNumber, Parcel_number.Replace("-", ""), 1803, Proresult, 1, DateTime.Now);
                    driver.FindElement(By.XPath("//*[@id='resAssess_titleBarNode']")).Click();
                    Thread.Sleep(2000);
                    gc.CreatePdf(orderNumber, Parcel_number, "Assessment Detail", driver, "AZ", "Yavapai");
                    string              AssessmentHead = "", Assessmenthead1 = "", Assessmenthead2 = "", Assessmentresult = "", Assessmentresult1 = "", Assessmentresult2 = "";
                    IWebElement         Assessmenttable = driver.FindElement(By.XPath("//*[@id='resAssess_pane']/table/tbody"));
                    IList <IWebElement> Assessmentrow   = Assessmenttable.FindElements(By.TagName("tr"));
                    IList <IWebElement> assessmentid;
                    foreach (IWebElement assessment in Assessmentrow)
                    {
                        assessmentid = assessment.FindElements(By.TagName("td"));
                        if (assessmentid.Count != 0 && !assessment.Text.Contains("Tax Year") && assessment.Text.Trim() != "")
                        {
                            Assessmentresult  += assessmentid[0].Text + "~";
                            Assessmentresult1 += assessmentid[1].Text + "~";
                            Assessmentresult2 += assessmentid[2].Text + "~";
                            // gc.insert_date(orderNumber, Parcel_number.Replace("-", ""), 1804, Assessmentresult, 1, DateTime.Now);
                        }
                        if (assessment.Text.Contains("Tax Year"))
                        {
                            AssessmentHead  += assessmentid[0].Text + "~";
                            Assessmenthead1 += assessmentid[1].Text + "~";
                            Assessmenthead2 += assessmentid[2].Text + "~";
                        }
                    }
                    db.ExecuteQuery("update data_field_master set Data_Fields_Text='" + AssessmentHead + Assessmentresult.Remove(Assessmentresult.Length - 1) + "' where Id = '" + 1804 + "'");
                    // gc.insert_date(orderNumber, Parcel_number.Replace("-", ""), 1804, Assessmentresult.Remove(Assessmentresult.Length-1), 1, DateTime.Now);
                    gc.insert_date(orderNumber, Parcel_number.Replace("-", ""), 1804, Assessmenthead1 + Assessmentresult1.Remove(Assessmentresult1.Length - 1), 1, DateTime.Now);
                    gc.insert_date(orderNumber, Parcel_number.Replace("-", ""), 1804, Assessmenthead2 + Assessmentresult2.Remove(Assessmentresult2.Length - 1), 1, DateTime.Now);
                    driver.FindElement(By.XPath("//*[@id='resTaxes_titleBarNode']")).Click();
                    Thread.Sleep(2000);
                    gc.CreatePdf(orderNumber, Parcel_number, "Tax Table", driver, "AZ", "Yavapai");
                    string              TaxHead = "", Taxresult = "";
                    IWebElement         Taxtable = driver.FindElement(By.XPath("//*[@id='taxTable']/table/tbody"));
                    IList <IWebElement> Taxtrow  = Taxtable.FindElements(By.TagName("tr"));
                    IList <IWebElement> Taxid;
                    foreach (IWebElement Taxweb in Taxtrow)
                    {
                        Taxid = Taxweb.FindElements(By.TagName("td"));
                        if (Taxid.Count > 1 && !Taxweb.Text.Contains("Year"))
                        {
                            TaxHead   += Taxid[0].Text + "~";
                            Taxresult += Taxid[1].Text + "~";
                        }
                    }
                    db.ExecuteQuery("update data_field_master set Data_Fields_Text='" + TaxHead.Remove(TaxHead.Length - 1) + "' where Id = '" + 1805 + "'");
                    gc.insert_date(orderNumber, Parcel_number.Replace("-", ""), 1805, Taxresult.Remove(Taxresult.Length - 1), 1, DateTime.Now);
                    //try
                    //{
                    //    driver.FindElement(By.LinkText("Tax Authorities:")).Click();
                    //    Thread.Sleep(2000);
                    //}
                    //catch { }
                    IWebElement         Iviewtax = driver.FindElement(By.Id("taxAuth")).FindElement(By.TagName("a"));
                    IJavaScriptExecutor js       = driver as IJavaScriptExecutor;
                    js.ExecuteScript("arguments[0].click();", Iviewtax);
                    Thread.Sleep(2000);
                    gc.CreatePdf(orderNumber, Parcel_number, "Authorit", driver, "AZ", "Yavapai");
                    IWebElement         Authoritytable = driver.FindElement(By.XPath("//*[@id='taxAuth']/table/tbody"));
                    IList <IWebElement> Authorityrow   = Authoritytable.FindElements(By.TagName("tr"));
                    IList <IWebElement> Authorityid;
                    foreach (IWebElement Authority in Authorityrow)
                    {
                        Authorityid = Authority.FindElements(By.TagName("td"));
                        if (Authorityid.Count > 1 && !Authority.Text.Contains("Authority"))
                        {
                            string Authorityresult = Authorityid[0].Text + "~" + Authorityid[1].Text;
                            gc.insert_date(orderNumber, Parcel_number.Replace("-", ""), 1806, Authorityresult, 1, DateTime.Now);
                        }
                    }
                    //Tax Site
                    driver.Navigate().GoToUrl("http://taxinquiry.yavapai.us/");
                    driver.FindElement(By.XPath("//*[@id='main']/table/tbody/tr/td[2]/div/div[1]/form/div/div/span/span/input")).SendKeys(Parcel_number);
                    gc.CreatePdf(orderNumber, Parcel_number, "Tax Parcel", driver, "AZ", "Yavapai");
                    driver.FindElement(By.XPath("//*[@id='main']/table/tbody/tr/td[2]/div/div[1]/form/div/input[1]")).Click();
                    gc.CreatePdf(orderNumber, Parcel_number, "Tax parcel Click", driver, "AZ", "Yavapai");
                    IWebElement         TaxInfotable = driver.FindElement(By.XPath("//*[@id='Grid']/table/tbody"));
                    IList <IWebElement> TaxInforow   = TaxInfotable.FindElements(By.TagName("tr"));
                    IList <IWebElement> TaxInfoid;
                    foreach (IWebElement TaxInfo in TaxInforow)
                    {
                        TaxInfoid = TaxInfo.FindElements(By.TagName("td"));
                        if (TaxInfoid.Count > 1)
                        {
                            string Taxinforesult = TaxInfoid[1].Text + "~" + TaxInfoid[2].Text + "~" + TaxInfoid[3].Text + "~" + TaxInfoid[4].Text + "~" + TaxInfoid[5].Text + "~" + TaxInfoid[6].Text;
                            gc.insert_date(orderNumber, Parcel_number.Replace("-", ""), 1807, Taxinforesult, 1, DateTime.Now);
                        }
                    }
                    IWebElement Taxyeardue  = driver.FindElement(By.XPath("//*[@id='PanelBar']/li[1]/ul/li[3]")).FindElement(By.TagName("a"));
                    string      taxyearhref = Taxyeardue.GetAttribute("href");
                    driver.Navigate().GoToUrl(taxyearhref);
                    for (int i = 0; i < 3; i++)
                    {
                        if (i == 1)
                        {
                            IWebElement         javaclick = driver.FindElement(By.XPath("//*[@id='taxYear_listbox']/li[2]"));
                            IJavaScriptExecutor js1       = driver as IJavaScriptExecutor;
                            js1.ExecuteScript("arguments[0].click();", javaclick);
                            Thread.Sleep(9000);
                        }
                        if (i == 2)
                        {
                            IWebElement         javaclick = driver.FindElement(By.XPath("//*[@id='taxYear_listbox']/li[3]"));
                            IJavaScriptExecutor js1       = driver as IJavaScriptExecutor;
                            js1.ExecuteScript("arguments[0].click();", javaclick);
                            Thread.Sleep(9000);
                        }
                        gc.CreatePdf(orderNumber, Parcel_number, "Taxyeardue" + i, driver, "AZ", "Yavapai");
                        IWebElement         TaxYeartable = driver.FindElement(By.XPath("//*[@id='Grid']/table/tbody"));
                        IList <IWebElement> TaxYearorow  = TaxYeartable.FindElements(By.TagName("tr"));
                        IList <IWebElement> TaxYearid;
                        foreach (IWebElement TaxYearweb in TaxYearorow)
                        {
                            TaxYearid = TaxYearweb.FindElements(By.TagName("td"));
                            if (TaxYearid.Count > 1)
                            {
                                string TaxYearresult = TaxYearid[1].Text + "~" + TaxYearid[2].Text + "~" + TaxYearid[3].Text;
                                gc.insert_date(orderNumber, Parcel_number.Replace("-", ""), 1808, TaxYearresult, 1, DateTime.Now);
                            }
                        }
                        IWebElement         TotalDuetable = driver.FindElement(By.XPath("//*[@id='Grid']/table/tfoot"));
                        IList <IWebElement> TotalDuerow   = TotalDuetable.FindElements(By.TagName("tr"));
                        IList <IWebElement> TotalDueid;
                        foreach (IWebElement TotalDue in TotalDuerow)
                        {
                            TotalDueid = TotalDue.FindElements(By.TagName("td"));
                            if (TotalDueid.Count > 1)
                            {
                                string TaxYearresult = TotalDueid[1].Text + "~" + TotalDueid[2].Text + "~" + TotalDueid[3].Text;
                                gc.insert_date(orderNumber, Parcel_number.Replace("-", ""), 1808, TaxYearresult, 1, DateTime.Now);
                            }
                        }
                        IWebElement Viwebill = driver.FindElement(By.XPath("//*[@id='main']/table/tbody/tr/td[2]/form/table/tbody/tr/td[5]")).FindElement(By.TagName("a"));
                        string      Viewhref = Viwebill.GetAttribute("href");
                        pdflink.Add(Viewhref);
                        //gc.downloadfile(Viewhref, orderNumber, Parcel_number, "TaxBill" + i, "AZ", "Yavapai");
                    }
                    int m = 0;
                    foreach (string pdf in pdflink)
                    {
                        driver.Navigate().GoToUrl(pdf);
                        gc.CreatePdf(orderNumber, Parcel_number, "Tax Bill" + m, driver, "AZ", "Yavapai");
                        m++;
                    }
                    TaxTime     = DateTime.Now.ToString("HH:mm:ss");
                    LastEndTime = DateTime.Now.ToString("HH:mm:ss");
                    gc.insert_TakenTime(orderNumber, "AZ", "Yavapai", StartTime, AssessmentTime, TaxTime, CitytaxTime, LastEndTime);
                    driver.Quit();
                    //HttpContext.Current.Session["titleparcel"] = null;
                    gc.mergpdf(orderNumber, "AZ", "Yavapai");
                    return("Data Inserted Successfully");
                }
                catch (Exception ex)
                {
                    driver.Quit();
                    GlobalClass.LogError(ex, orderNumber);
                    throw ex;
                }
            }
        }
Beispiel #18
0
        public string FTP_FayetteKy(string streetno, string direction, string streetname, string streettype, string unitno, string ownername, string parcelNumber, string searchType, string orderNumber)
        {
            GlobalClass.global_orderNo             = orderNumber;
            HttpContext.Current.Session["orderNo"] = orderNumber;
            GlobalClass.global_parcelNo            = parcelNumber;
            List <string> multiparcel = new List <string>();
            string        StartTime = "", AssessmentTime = "", TaxTime = "", CitytaxTime = "", LastEndTime = "";


            var driverService = PhantomJSDriverService.CreateDefaultService();

            driverService.HideCommandPromptWindow = true;
            using (driver = new PhantomJSDriver())
            {
                StartTime = DateTime.Now.ToString("HH:mm:ss");
                driver.Navigate().GoToUrl("http://qpublic9.qpublic.net/ky_fayette_search2.php");
                Thread.Sleep(2000);
                driver.FindElement(By.XPath("//*[@id='xr_xri']/div[1]/span[9]/a")).SendKeys(Keys.Enter);
                Thread.Sleep(2000);
                try
                {
                    if (searchType == "titleflex")
                    {
                        string address = streetno + " " + direction + " " + streetname + " " + streettype + "" + unitno;
                        gc.TitleFlexSearch(orderNumber, "", ownername, address, "KY", "Fayette");
                        if ((HttpContext.Current.Session["TitleFlex_Search"] != null && HttpContext.Current.Session["TitleFlex_Search"].ToString() == "Yes"))
                        {
                            driver.Quit();
                            return("MultiParcel");
                        }
                        else if (HttpContext.Current.Session["titleparcel"].ToString() == "")
                        {
                            HttpContext.Current.Session["Nodata_FayetteKy"] = "Zero";
                            driver.Quit();
                            return("No Data Found");
                        }
                        parcelNumber = HttpContext.Current.Session["titleparcel"].ToString();
                        searchType   = "parcel";
                    }

                    if (searchType == "address")
                    {
                        driver.FindElement(By.XPath("/html/body/table[1]/tbody/tr/td[1]/ul/li[1]/b/a")).SendKeys(Keys.Enter);
                        Thread.Sleep(2000);

                        driver.FindElement(By.XPath("/html/body/form/table/tbody/tr/td[2]/table/tbody/tr[1]/td[2]/input")).SendKeys(streetno);
                        driver.FindElement(By.XPath("//*[@id='streetName']")).SendKeys(streetname);
                        gc.CreatePdf_WOP(orderNumber, "SearchAddressBefore", driver, "KY", "Fayette");
                        driver.FindElement(By.XPath("/html/body/form/table/tbody/tr/td[2]/table/tbody/tr[6]/td[2]/input")).SendKeys(Keys.Enter);
                        gc.CreatePdf_WOP(orderNumber, "SearchAddressAfter", driver, "KY", "Fayette");
                        Thread.Sleep(2000);
                        try
                        {
                            gc.CreatePdf_WOP(orderNumber, "Multiparcel Result", driver, "KY", "Fayette");
                            Thread.Sleep(2000);
                            string              Owner = "", Address = "", MultiParcelNumber = "";
                            int                 Mcount     = 0;
                            IWebElement         multy      = driver.FindElement(By.XPath("/html/body/table/tbody"));
                            IList <IWebElement> muladdress = multy.FindElements(By.TagName("tr"));
                            IList <IWebElement> mulid;
                            foreach (IWebElement addressrow in muladdress)
                            {
                                mulid = addressrow.FindElements(By.TagName("td"));
                                if (mulid.Count != 0 && !addressrow.Text.Contains("Return to Main Search") && !addressrow.Text.Contains("Search Criteria:") && !addressrow.Text.Contains("Search produced") && !addressrow.Text.Contains("Parcel Number") && !addressrow.Text.Contains("To create") && !addressrow.Text.Contains("No warranties") && !addressrow.Text.Contains(" Return to Main Search "))
                                {
                                    if (Mcount <= 29)
                                    {
                                        IWebElement Iparcel = mulid[0].FindElement(By.TagName("a"));
                                        MultiParcelNumber = Iparcel.Text;
                                        Owner             = mulid[1].Text;
                                        Address           = mulid[2].Text;
                                        string MultyInst = Address + "~" + Owner;
                                        gc.insert_date(orderNumber, MultiParcelNumber, 690, MultyInst, 1, DateTime.Now);
                                    }
                                    Mcount++;
                                }
                            }
                            if (Mcount > 29)
                            {
                                HttpContext.Current.Session["multiParcel_FayetteKy_Maximum"] = "Maximum";
                                return("Maximum");
                            }
                            else
                            {
                                HttpContext.Current.Session["multiparcel_FayetteKy"] = "Yes";
                            }
                            driver.Quit();
                            return("MultiParcel");
                        }
                        catch
                        {
                        }
                        gc.CreatePdf_WOP(orderNumber, "SearchAddressAfter", driver, "KY", "Fayette");
                        Thread.Sleep(2000);
                        try
                        {
                            //No Data Found
                            string nodata = driver.FindElement(By.XPath("/html/body/table/tbody/tr[2]/td/font")).Text;
                            if (nodata.Contains("0 of 0 Results Returned"))
                            {
                                HttpContext.Current.Session["Nodata_FayetteKy"] = "Yes";
                                driver.Quit();
                                return("No Data Found");
                            }
                        }
                        catch { }
                    }
                    if (searchType == "parcel")
                    {
                        driver.FindElement(By.XPath("html/body/table[1]/tbody/tr/td[1]/ul/li[3]/b/a")).SendKeys(Keys.Enter);
                        Thread.Sleep(2000);

                        driver.FindElement(By.XPath("html/body/form/table/tbody/tr/td/input[2]")).SendKeys(parcelNumber);
                        gc.CreatePdf(orderNumber, parcelNumber, "Parcel Search", driver, "KY", "Fayette");
                        driver.FindElement(By.XPath("/html/body/form/table/tbody/tr/td/input[5]")).SendKeys(Keys.Enter);
                        Thread.Sleep(2000);
                        try
                        {
                            //No Data Found
                            string nodata = driver.FindElement(By.XPath("/html/body/table/tbody/tr[2]/td/font")).Text;
                            if (nodata.Contains("0 of 0 Results Returned"))
                            {
                                HttpContext.Current.Session["Nodata_FayetteKy"] = "Yes";
                                driver.Quit();
                                return("No Data Found");
                            }
                        }
                        catch { }
                    }
                    //Property Details

                    string ParcelID = "", OwnerName = "", MailingAddress = "", Address1 = "", PropertyAddress = "", LegalDescription = "", PropertyClass = "", LandUseCode = "", MapBlock = "", Lot = "", SubDivision = "", TaxDistrict = "", TaxRate = "";

                    IWebElement         tbmulti11 = driver.FindElement(By.XPath("/html/body/center[2]/table[2]/tbody"));
                    IList <IWebElement> TRmulti11 = tbmulti11.FindElements(By.TagName("tr"));
                    IList <IWebElement> TDmulti11;
                    foreach (IWebElement row in TRmulti11)
                    {
                        TDmulti11 = row.FindElements(By.TagName("td"));
                        if (TDmulti11.Count != 0)
                        {
                            if (row.Text.Contains("Owner Name"))
                            {
                                OwnerName = TDmulti11[1].Text;
                            }
                            if (row.Text.Contains("Parcel Number"))
                            {
                                ParcelID = TDmulti11[3].Text.Trim();
                            }
                            if (row.Text.Contains("Mailing Address"))
                            {
                                MailingAddress = TDmulti11[1].Text;
                            }
                            if (row.Text.Contains("Tax District"))
                            {
                                TaxDistrict = TDmulti11[3].Text;
                                Address1    = TDmulti11[1].Text;
                            }
                            if (row.Text.Contains("Location Address"))
                            {
                                PropertyAddress = TDmulti11[1].Text;
                            }
                            if (row.Text.Contains("Legal Description"))
                            {
                                LegalDescription = TDmulti11[1].Text;
                            }
                            if (row.Text.Contains("Property Class"))
                            {
                                PropertyClass = TDmulti11[1].Text;
                            }
                            if (row.Text.Contains("Land Use Code"))
                            {
                                LandUseCode = TDmulti11[1].Text;
                            }
                            if (row.Text.Contains("Map Block"))
                            {
                                MapBlock = TDmulti11[1].Text;
                            }
                            if (row.Text.Contains("Lot"))
                            {
                                Lot = TDmulti11[1].Text;
                            }
                            if (row.Text.Contains("Subdivision"))
                            {
                                SubDivision = TDmulti11[1].Text;
                            }
                            if (row.Text.Contains("Tax Rate"))
                            {
                                TaxRate = TDmulti11[3].Text;
                            }
                        }
                    }
                    string YearBuilt = "";
                    try
                    {
                        YearBuilt = driver.FindElement(By.XPath("/html/body/center[2]/table[4]/tbody/tr[3]/td[5]")).Text;
                    }
                    catch { }
                    string propertydetails = ParcelID + "~" + OwnerName + "~" + MailingAddress + " " + Address1 + "~" + PropertyAddress + "~" + LegalDescription + "~" + PropertyClass + "~" + LandUseCode + "~" + MapBlock + "~" + Lot + "~" + SubDivision + "~" + TaxDistrict + "~" + TaxRate + "~" + YearBuilt;
                    gc.insert_date(orderNumber, ParcelID, 649, propertydetails, 1, DateTime.Now);
                    //********Tax Assessment Details*******
                    int    i = 0;
                    string assesstitle = "", assessvalue = "";
                    gc.CreatePdf(orderNumber, ParcelID, "Assessment Details", driver, "KY", "Fayette");
                    Thread.Sleep(3000);
                    IWebElement         IassessmentTable = driver.FindElement(By.XPath("/html/body/center[2]/table[3]/tbody"));
                    IList <IWebElement> IassessmentRow   = IassessmentTable.FindElements(By.TagName("tr"));
                    IList <IWebElement> Iassessmenttd;
                    foreach (IWebElement assess in IassessmentRow)
                    {
                        Iassessmenttd = assess.FindElements(By.TagName("td"));
                        if (Iassessmenttd.Count != 0 && !assess.Text.Contains("Assessment Information"))
                        {
                            for (int j = 0; j < Iassessmenttd.Count; j++)
                            {
                                assessvalue += Iassessmenttd[j].Text + "~";
                            }
                            if (i == 0)
                            {
                                db.ExecuteQuery("update data_field_master set Data_Fields_Text='" + assessvalue.Remove(assessvalue.Length - 1, 1) + "' where Id = '" + 655 + "'");
                                assessvalue = "";
                            }
                            if (i == 1)
                            {
                                gc.insert_date(orderNumber, ParcelID, 655, assessvalue.Remove(assessvalue.Length - 1, 1), 1, DateTime.Now);
                            }
                            i++;
                        }
                    }
                    AssessmentTime = DateTime.Now.ToString("HH:mm:ss");
                    //*******Tax information Details*******
                    string Delinquent = "";
                    try
                    {
                        string currentyear = "";
                        int    year        = DateTime.Now.Year;
                        int    increase    = 0;
                        for (int l = 0; l < 7; l++)
                        {
                            if (increase < 3)
                            {
                                try
                                {
                                    currentyear = Convert.ToString(year);
                                    driver.Navigate().GoToUrl("http://fayettesheriff.com/property_taxes_lookup.php");
                                    Thread.Sleep(2000);
                                    gc.CreatePdf(orderNumber, ParcelID, "Tax Year Choosed", driver, "KY", "Fayette");
                                    IWebElement   ISelect = driver.FindElement(By.XPath("/html/body/div/div/div[1]/p/select"));
                                    SelectElement sSelect = new SelectElement(ISelect);
                                    sSelect.SelectByText(currentyear);
                                    driver.FindElement(By.XPath("//*[@id='table2']/tbody/tr[3]/td[2]/blockquote/form[2]/p[1]/input")).SendKeys(ParcelID);
                                    gc.CreatePdf(orderNumber, ParcelID, "Tax Search  Input Passed", driver, "KY", "Fayette");
                                    driver.FindElement(By.XPath("//*[@id='table2']/tbody/tr[3]/td[2]/blockquote/form[2]/p[2]/input")).SendKeys(Keys.Enter);
                                    Thread.Sleep(2000);
                                    gc.CreatePdf(orderNumber, ParcelID, "Tax Search Result" + currentyear, driver, "KY", "Fayette");
                                    try
                                    {
                                        string              taxinfotitle = "", taxinfovalue = "";
                                        IWebElement         ITaxinfoTable = driver.FindElement(By.XPath("//*[@id='table2']/tbody/tr[3]/td[2]/table/tbody/tr/td/p[1]/table/tbody"));
                                        IList <IWebElement> ItaxinfoRow   = ITaxinfoTable.FindElements(By.TagName("tr"));
                                        IList <IWebElement> ItaxinfoTD;
                                        IList <IWebElement> ItaxinfoTH;
                                        foreach (IWebElement rowid in ItaxinfoRow)
                                        {
                                            ItaxinfoTH = rowid.FindElements(By.TagName("th"));
                                            ItaxinfoTD = rowid.FindElements(By.TagName("td"));
                                            if (ItaxinfoTH.Count != 0 && rowid.Text != "")
                                            {
                                                for (int m = 0; m < ItaxinfoTH.Count; m++)
                                                {
                                                    if (ItaxinfoTH[m].Text != "")
                                                    {
                                                        taxinfotitle += ItaxinfoTH[m].Text.Replace("\r\n", " & ").Trim() + "~";
                                                    }
                                                }
                                            }
                                            if (ItaxinfoTD.Count != 0 && rowid.Text != "")
                                            {
                                                for (int n = 0; n < ItaxinfoTD.Count; n++)
                                                {
                                                    if (ItaxinfoTD[n].Text != "")
                                                    {
                                                        taxinfovalue += ItaxinfoTD[n].Text.Replace("\r\n", " & ").Trim() + "~";
                                                    }
                                                }
                                            }
                                        }
                                        string Taxyear1 = "", Taxyear = "", TaxingAuthority = "";

                                        string bulktext = driver.FindElement(By.XPath("//*[@id='table2']/tbody/tr[3]/td[2]/table/tbody/tr/td/span[2]")).Text;
                                        Taxyear1 = GlobalClass.Before(bulktext, "- ").Trim();
                                        Taxyear  = GlobalClass.After(Taxyear1, ",").Trim();

                                        if (taxinfovalue.Contains("Due") && !taxinfovalue.Contains("Paid"))
                                        {
                                            Delinquent = "Yes";
                                        }

                                        TaxingAuthority = driver.FindElement(By.XPath("//*[@id='table2']/tbody/tr[3]/td[1]/font")).Text;
                                        db.ExecuteQuery("update data_field_master set Data_Fields_Text='" + taxinfotitle + "Taxyear" + "~" + "TaxingAuthority" + "' where Id = '" + 657 + "'");
                                        gc.insert_date(orderNumber, ParcelID, 657, taxinfovalue + Taxyear + "~" + TaxingAuthority, 1, DateTime.Now);
                                    }
                                    catch
                                    {
                                    }
                                    increase++;
                                }
                                catch { }
                            }
                            year--;
                        }

                        try
                        {
                            driver.Navigate().GoToUrl("https://www.fayettecountyclerk.com/web/landrecords/delinquenttaxes/delinquentTaxCalc.htm");
                            Thread.Sleep(2000);
                            driver.FindElement(By.XPath("//*[@id='form1']/table/tbody/tr[1]/td/input")).SendKeys(ParcelID);
                            Thread.Sleep(2000);
                            gc.CreatePdf(orderNumber, ParcelID, "Delinquent details ", driver, "KY", "Fayette");
                            driver.FindElement(By.XPath("//*[@id='form1']/table/tbody/tr[2]/td/input[4]")).SendKeys(Keys.Enter);
                            Thread.Sleep(2000);
                            gc.CreatePdf(orderNumber, ParcelID, "Delinquent Details InputPassedPdf", driver, "KY", "Fayette");
                        }
                        catch { }

                        //Delinquent Tax information Details
                        if (Delinquent == "Yes")
                        {
                            try
                            {
                                driver.Navigate().GoToUrl("https://www.fayettecountyclerk.com/web/landrecords/delinquenttaxes/delinquentTaxCalc.htm");
                                Thread.Sleep(2000);
                                driver.FindElement(By.XPath("//*[@id='form1']/table/tbody/tr[1]/td/input")).SendKeys(ParcelID);
                                Thread.Sleep(2000);
                                gc.CreatePdf(orderNumber, ParcelID, "Delinquent site InputPassed", driver, "KY", "Fayette");
                                driver.FindElement(By.XPath("//*[@id='form1']/table/tbody/tr[2]/td/input[4]")).SendKeys(Keys.Enter);
                                Thread.Sleep(2000);
                                gc.CreatePdf(orderNumber, ParcelID, "Delinquent Details Displayed", driver, "KY", "Fayette");

                                string              Year = "", BillNumber = "", Account = "", Paid = "", Assigned = "", Owner = "";
                                IWebElement         tbmulti12 = driver.FindElement(By.XPath("//*[@id='subfile']/tbody"));
                                IList <IWebElement> TRmulti12 = tbmulti12.FindElements(By.TagName("tr"));
                                IList <IWebElement> TDmulti12;
                                foreach (IWebElement row in TRmulti12)
                                {
                                    TDmulti12 = row.FindElements(By.TagName("td"));
                                    if (TDmulti12.Count != 0 && row.Text.Contains(ParcelID))
                                    {
                                        Year       = TDmulti12[1].Text;
                                        BillNumber = TDmulti12[2].Text;
                                        Account    = TDmulti12[3].Text;
                                        Paid       = TDmulti12[4].Text;
                                        Assigned   = TDmulti12[5].Text;
                                        Owner      = TDmulti12[6].Text;

                                        string DelinquentTaxinformationDetails = Year + "~" + BillNumber + "~" + Account + "~" + Paid + "~" + Assigned + "~" + Owner;
                                        gc.insert_date(orderNumber, ParcelID, 674, DelinquentTaxinformationDetails, 1, DateTime.Now);
                                    }
                                }
                            }
                            catch
                            {
                            }
                        }
                    }
                    catch { }

                    TaxTime = DateTime.Now.ToString("HH:mm:ss");
                    driver.Quit();
                    gc.mergpdf(orderNumber, "KY", "Fayette");
                    LastEndTime = DateTime.Now.ToString("HH:mm:ss");
                    gc.insert_TakenTime(orderNumber, "KY", "Fayette", StartTime, AssessmentTime, TaxTime, CitytaxTime, LastEndTime);
                    return("Data Inserted Successfully");
                }
                catch (Exception ex)
                {
                    driver.Quit();
                    GlobalClass.LogError(ex, orderNumber);
                    throw ex;
                }
            }
        }
Beispiel #19
0
        public string FTP_LeeFL(string Address, string ownername, string parcelNumber, string searchType, string orderNumber, string directParcel)
        {
            GlobalClass.global_orderNo             = orderNumber;
            HttpContext.Current.Session["orderNo"] = orderNumber;
            GlobalClass.global_parcelNo            = parcelNumber;
            string StartTime = "", AssessmentTime = "", TaxTime = "", CitytaxTime = "", LastEndTime = "";

            List <string> strissuecertificate = new List <string>();
            List <string> taxhistorylink      = new List <string>();
            List <string> downloadlink        = new List <string>();
            List <string> taxhistorylinkinst  = new List <string>();
            var           driverService       = PhantomJSDriverService.CreateDefaultService();

            driverService.HideCommandPromptWindow = true;
            //driver = new ChromeDriver();
            //driver = new PhantomJSDriver();
            using (driver = new PhantomJSDriver()) //ChromeDriver
            {
                try
                {
                    StartTime = DateTime.Now.ToString("HH:mm:ss");
                    driver.Navigate().GoToUrl("http://www.leepa.org/Search/PropertySearch.aspx");

                    if (searchType == "titleflex")
                    {
                        gc.TitleFlexSearch(orderNumber, "", "", Address, "FL", "Lee");
                        if ((HttpContext.Current.Session["TitleFlex_Search"] != null && HttpContext.Current.Session["TitleFlex_Search"].ToString() == "Yes"))
                        {
                            driver.Quit();
                            return("MultiParcel");
                        }
                        else if (HttpContext.Current.Session["titleparcel"].ToString() == "")
                        {
                            HttpContext.Current.Session["Nodata_LeeFL"] = "Yes";
                            driver.Quit();
                            return("No Data Found");
                        }
                        parcelNumber = HttpContext.Current.Session["titleparcel"].ToString().Replace("-", "");
                        searchType   = "parcel";
                    }
                    if (searchType == "address")
                    {
                        driver.FindElement(By.Id("ctl00_BodyContentPlaceHolder_AddressTextBox")).SendKeys(Address);
                        gc.CreatePdf_WOP(orderNumber, "Address search Input ", driver, "FL", "Lee");
                        driver.FindElement(By.Id("ctl00_BodyContentPlaceHolder_SubmitPropertySearch")).SendKeys(Keys.Enter);
                        Thread.Sleep(2000);
                        gc.CreatePdf_WOP(orderNumber, "Address search Result ", driver, "FL", "Lee");
                        ////Multiparcel
                        try
                        {
                            //int Count = 0;
                            string              matches           = driver.FindElement(By.Id("ctl00_BodyContentPlaceHolder_SearchResultsRepeater_ctl00_infoHeaderDetail")).Text;
                            string              matches1          = gc.Between(matches, "found", "matches").Trim();
                            IWebElement         Multiaddresstable = driver.FindElement(By.XPath("//*[@id='ctl00_BodyContentPlaceHolder_PropertySearchUpdatePanel']/div[3]/table/tbody"));
                            IList <IWebElement> multiaddressrow   = Multiaddresstable.FindElements(By.TagName("tr"));
                            IList <IWebElement> Multiaddressid;
                            foreach (IWebElement Multiaddress in multiaddressrow)
                            {
                                Multiaddressid = Multiaddress.FindElements(By.TagName("td"));
                                if (multiaddressrow.Count > 8 && Multiaddressid.Count != 0 && Multiaddressid.Count == 8 && !Multiaddress.Text.Contains("STRAP  / Folio ID "))
                                {
                                    string Multiparcelnumber = Multiaddressid[1].Text;
                                    string OWnername         = Multiaddressid[2].Text;
                                    string Address1          = Multiaddressid[3].Text;

                                    string multiaddressresult = OWnername + "~" + Address1;
                                    gc.insert_date(orderNumber, Multiparcelnumber, 1525, multiaddressresult, 1, DateTime.Now);
                                    //Count++;
                                }
                            }
                            if (multiaddressrow.Count == 8)
                            {
                                driver.FindElement(By.XPath("//*[@id='ctl00_BodyContentPlaceHolder_PropertySearchUpdatePanel']/div[3]/table/tbody/tr[1]/td[5]/table/tbody/tr/td/table/tbody/tr[1]/th[1]/a")).Click();
                                Thread.Sleep(2000);
                            }

                            if (multiaddressrow.Count > 8 && Convert.ToInt16(matches1) <= 10)
                            {
                                HttpContext.Current.Session["multiparcel_LeeFL"] = "Yes";
                                driver.Quit();
                                return("MultiParcel");
                            }
                            if (Convert.ToInt16(matches1) > 10)
                            {
                                HttpContext.Current.Session["multiParcel_LeeFL_Maximum"] = "Maximum";
                                driver.Quit();
                                return("Maximum");
                            }
                        }
                        catch { }
                        try
                        {
                            //No Data Found
                            string nodata = driver.FindElement(By.Id("ctl00_BodyContentPlaceHolder_ErrorLabel")).Text;
                            if (nodata.Contains("Returned 0 records.") || nodata.Contains("No matches found"))
                            {
                                HttpContext.Current.Session["Nodata_LeeFL"] = "Yes";
                                driver.Quit();
                                return("No Data Found");
                            }
                        }
                        catch { }
                    }

                    if (searchType == "parcel")
                    {
                        driver.FindElement(By.Id("ctl00_BodyContentPlaceHolder_STRAPTextBox")).SendKeys(parcelNumber);
                        gc.CreatePdf_WOP(orderNumber, "Parcel search", driver, "FL", "Lee");
                        driver.FindElement(By.Id("ctl00_BodyContentPlaceHolder_SubmitPropertySearch")).SendKeys(Keys.Enter);
                        Thread.Sleep(5000);
                        gc.CreatePdf_WOP(orderNumber, "Parcel search Result", driver, "FL", "Lee");
                        try
                        {
                            //No Data Found
                            string nodata = driver.FindElement(By.Id("ctl00_BodyContentPlaceHolder_ErrorLabel")).Text;
                            if (nodata.Contains("Returned 0 records.") || nodata.Contains("No matches found"))
                            {
                                HttpContext.Current.Session["Nodata_LeeFL"] = "Yes";
                                driver.Quit();
                                return("No Data Found");
                            }
                        }
                        catch { }
                    }
                    if (searchType == "ownername")
                    {
                        driver.FindElement(By.Id("ctl00_BodyContentPlaceHolder_OwnerNameTextBox")).SendKeys(ownername);
                        gc.CreatePdf_WOP(orderNumber, "Ownername search Input ", driver, "FL", "Lee");
                        driver.FindElement(By.Id("ctl00_BodyContentPlaceHolder_SubmitPropertySearch")).SendKeys(Keys.Enter);
                        Thread.Sleep(5000);
                        gc.CreatePdf_WOP(orderNumber, "Ownername search Result ", driver, "FL", "Lee");

                        ////Multiparcel
                        try
                        {
                            //int Count = 0;
                            string              matches           = driver.FindElement(By.Id("ctl00_BodyContentPlaceHolder_SearchResultsRepeater_ctl00_infoHeaderDetail")).Text;
                            string              matches1          = gc.Between(matches, "found", "matches").Trim();
                            IWebElement         Multiaddresstable = driver.FindElement(By.XPath("//*[@id='ctl00_BodyContentPlaceHolder_PropertySearchUpdatePanel']/div[3]/table/tbody"));
                            IList <IWebElement> multiaddressrow   = Multiaddresstable.FindElements(By.TagName("tr"));
                            IList <IWebElement> Multiaddressid;
                            foreach (IWebElement Multiaddress in multiaddressrow)
                            {
                                Multiaddressid = Multiaddress.FindElements(By.TagName("td"));
                                if (multiaddressrow.Count > 8 && Multiaddressid.Count != 0 && Multiaddressid.Count == 8 && !Multiaddress.Text.Contains("STRAP  / Folio ID "))
                                {
                                    string Multiparcelnumber = Multiaddressid[1].Text;
                                    string OWnername         = Multiaddressid[2].Text;
                                    string Address1          = Multiaddressid[3].Text;

                                    string multiaddressresult = OWnername + "~" + Address1;
                                    gc.insert_date(orderNumber, Multiparcelnumber, 1525, multiaddressresult, 1, DateTime.Now);
                                    //Count++;
                                }
                            }
                            if (multiaddressrow.Count == 8)
                            {
                                driver.FindElement(By.XPath("//*[@id='ctl00_BodyContentPlaceHolder_PropertySearchUpdatePanel']/div[3]/table/tbody/tr[1]/td[5]/table/tbody/tr/td/table/tbody/tr[1]/th[1]/a")).Click();
                                Thread.Sleep(2000);
                            }

                            if (multiaddressrow.Count > 8 && Convert.ToInt16(matches1) <= 10)
                            {
                                HttpContext.Current.Session["multiparcel_LeeFL"] = "Yes";
                                driver.Quit();
                                return("MultiParcel");
                            }
                            if (Convert.ToInt16(matches1) > 10)
                            {
                                HttpContext.Current.Session["multiParcel_LeeFL_Maximum"] = "Maximum";
                                driver.Quit();
                                return("Maximum");
                            }
                        }
                        catch { }
                        try
                        {
                            //No Data Found
                            string nodata = driver.FindElement(By.Id("ctl00_BodyContentPlaceHolder_ErrorLabel")).Text;
                            if (nodata.Contains("Returned 0 records."))
                            {
                                HttpContext.Current.Session["Nodata_LeeFL"] = "Yes";
                                driver.Quit();
                                return("No Data Found");
                            }
                        }
                        catch { }
                    }

                    //Property Details
                    string ParcelID = "", FolioNo = "", OwnerName = "", PropertyAddress = "", MailingAdd1 = "", MailingAdd2 = "", MailingAdd3 = "", MailingAdd4 = "", MailingAdd = "", Legaldes = "", Yearbuilt = "", Usecode = "", Usecodedescri = "";
                    //ParcelID = driver.FindElement(By.XPath("//*[@id='ctl00_BodyContentPlaceHolder_PropertySearchUpdatePanel']/div[3]/table/tbody/tr[1]/td[2]")).Text;
                    //  FolioNo= driver.FindElement(By.XPath("//*[@id='ctl00_BodyContentPlaceHolder_PropertySearchUpdatePanel']/div[3]/table/tbody/tr[2]/td[1]")).Text;

                    try
                    {
                        driver.FindElement(By.XPath("//*[@id='ctl00_BodyContentPlaceHolder_PropertySearchUpdatePanel']/div[3]/table/tbody/tr[1]/td[5]/table/tbody/tr/td/table/tbody/tr[1]/th[1]/a")).Click();
                        Thread.Sleep(9000);
                        driver.SwitchTo().Window(driver.WindowHandles.Last());
                    }
                    catch { }
                    try
                    {
                        IWebElement         Receipttable = driver.FindElement(By.XPath("//*[@id='ctl00_BodyContentPlaceHolder_PropertySearchUpdatePanel']/div[3]/table/tbody/tr[1]/td[5]/table/tbody/tr/td/table/tbody/tr[1]/th[1]/a"));
                        IJavaScriptExecutor js1          = driver as IJavaScriptExecutor;
                        js1.ExecuteScript("arguments[0].click();", Receipttable);
                        Thread.Sleep(9000);
                        driver.SwitchTo().Window(driver.WindowHandles.Last());
                    }
                    catch { }
                    try
                    {
                        IWebElement         Receipttable = driver.FindElement(By.LinkText("Parcel Details"));
                        IJavaScriptExecutor js1          = driver as IJavaScriptExecutor;
                        js1.ExecuteScript("arguments[0].click();", Receipttable);
                        Thread.Sleep(9000);
                        driver.SwitchTo().Window(driver.WindowHandles.Last());
                    }
                    catch { }
                    Thread.Sleep(2000);
                    //gc.CreatePdf(orderNumber, parcelNumber, "Parcel search Input", driver, "FL", "Lee");
                    //driver.SwitchTo().Window(driver.WindowHandles.Last());
                    //Thread.Sleep(5000);
                    gc.CreatePdf(orderNumber, parcelNumber, "Parcel search Result", driver, "FL", "Lee");


                    IWebElement ParcelID1 = driver.FindElement(By.XPath("//*[@id='content']/div/div[1]/div[2]"));
                    ParcelID        = gc.Between(ParcelID1.Text, "STRAP:", "Folio ID:").Trim();
                    FolioNo         = GlobalClass.After(ParcelID1.Text, "Folio ID:").Trim();
                    PropertyAddress = driver.FindElement(By.XPath("//*[@id='divDisplayParcelOwner']/div[2]/div[2]")).Text.Trim();
                    IWebElement OwnerName1 = driver.FindElement(By.XPath("//*[@id='divDisplayParcelOwner']/div[1]/div/div[2]/div"));
                    //string[] OwnerName1split = OwnerName1.Text.Split('\r');
                    //OwnerName = OwnerName1split[0].Replace("\n", "").Trim();
                    //try
                    //{
                    //    MailingAdd1 = OwnerName1split[1].Replace("\n", "").Trim();
                    //    MailingAdd2 = OwnerName1split[2].Replace("\n", "").Trim();
                    //    MailingAdd3 = OwnerName1split[3].Replace("\n", "").Trim();
                    //    MailingAdd4 = OwnerName1split[4].Replace("\n", "").Trim();

                    //}
                    //catch { }
                    //MailingAdd = MailingAdd1.Trim() + " " + MailingAdd2.Trim() + " " + MailingAdd3.Trim() + " " + MailingAdd4.Trim();
                    ownername = OwnerName1.Text.Replace("\r\n", " ");
                    Legaldes  = driver.FindElement(By.XPath("//*[@id='divDisplayParcelOwner']/div[3]/div[2]")).Text.Trim();
                    //Yearbuilt = driver.FindElement(By.XPath("//*[@id='divDisplayParcelAttributes']/div[2]/table[2]/tbody/tr[6]/td")).Text.Trim();
                    driver.FindElement(By.Id("AppraisalHyperLink2")).Click();
                    Thread.Sleep(2000);
                    gc.CreatePdf(orderNumber, parcelNumber, "Appraisal Details", driver, "FL", "Lee");
                    try
                    {
                        Usecode       = driver.FindElement(By.XPath("//*[@id='AppraisalDetails']/div[2]/table[1]/tbody/tr[3]/td[1]")).Text.Trim();
                        Usecodedescri = driver.FindElement(By.XPath("//*[@id='AppraisalDetails']/div[2]/table[1]/tbody/tr[3]/td[2]")).Text.Trim();
                    }
                    catch { }
                    try
                    {
                        Yearbuilt = driver.FindElement(By.XPath("//*[@id='divDisplayParcelAttributes']/div[2]/table[2]/tbody/tr[6]/td")).Text.Trim();
                    }
                    catch { }
                    try
                    {
                        Yearbuilt = driver.FindElement(By.XPath("//*[@id='AppraisalDetails']/div[3]/table[2]/tbody/tr[3]/td[11]")).Text.Trim();
                    }
                    catch { }
                    //Assessment Details
                    string Assessedyear = "", Just = "", Assessed = "", PortabilityApp = "", Capassessed = "", Taxable = "", Capdifferen = "", Homestead = "", Additional = "";

                    driver.FindElement(By.Id("LastRollHyperLink2")).Click();
                    Thread.Sleep(2000);
                    IWebElement Assessedyear1 = driver.FindElement(By.Id("LastRollHyperLink2"));
                    if (Assessedyear1.Text.Contains("Tax Roll"))
                    {
                        Assessedyear = gc.Between(Assessedyear1.Text, "Values (", "Tax Roll)").Trim();
                    }
                    if (Assessedyear1.Text.Contains("TRIM"))
                    {
                        Assessedyear = gc.Between(Assessedyear1.Text, "Values (", "TRIM)").Trim();
                    }

                    IWebElement         Bigdata3   = driver.FindElement(By.XPath("//*[@id='taxRollTable']/tbody/tr[2]/td[1]/table/tbody"));
                    IList <IWebElement> TRBigdata3 = Bigdata3.FindElements(By.TagName("tr"));
                    IList <IWebElement> TDBigdata3;
                    foreach (IWebElement row3 in TRBigdata3)
                    {
                        TDBigdata3 = row3.FindElements(By.TagName("td"));

                        if (TDBigdata3.Count != 0 && TDBigdata3.Count == 1 && row3.Text.Contains("Just"))
                        {
                            Just = TDBigdata3[0].Text;
                        }
                        if (TDBigdata3.Count != 0 && TDBigdata3.Count == 1 && row3.Text.Contains("Assessed") && !row3.Text.Contains("Cap"))
                        {
                            Assessed = TDBigdata3[0].Text;
                        }
                        if (TDBigdata3.Count != 0 && TDBigdata3.Count == 1 && row3.Text.Contains("Portability Applied"))
                        {
                            PortabilityApp = TDBigdata3[0].Text;
                        }
                        if (TDBigdata3.Count != 0 && TDBigdata3.Count == 1 && row3.Text.Contains("Cap") && !row3.Text.Contains("Difference"))
                        {
                            Capassessed = TDBigdata3[0].Text;
                        }
                        if (TDBigdata3.Count != 0 && TDBigdata3.Count == 1 && row3.Text.Contains("Taxable"))
                        {
                            Taxable = TDBigdata3[0].Text;
                        }
                        if (TDBigdata3.Count != 0 && TDBigdata3.Count == 1 && row3.Text.Contains("Cap Difference"))
                        {
                            Capdifferen = TDBigdata3[0].Text;
                        }
                    }
                    string AssessmentDetails = Assessedyear.Trim() + "~" + Just.Trim() + "~" + Assessed.Trim() + "~" + PortabilityApp.Trim() + "~" + Capassessed.Trim() + "~" + Taxable.Trim() + "~" + Capdifferen.Trim();
                    gc.insert_date(orderNumber, ParcelID, 1516, AssessmentDetails, 1, DateTime.Now);
                    AssessmentTime = DateTime.Now.ToString("HH:mm:ss");
                    //Overall Extended Click Screenshots
                    //Exemption click
                    try
                    {
                        driver.FindElement(By.Id("ExemptionsHyperLink2")).Click();
                        Thread.Sleep(2000);
                    }
                    catch { }
                    //Taxing Authorities
                    try
                    {
                        driver.FindElement(By.Id("TaxAuthorityHyperLink2")).Click();
                        Thread.Sleep(2000);
                    }
                    catch { }
                    //Sales /Transactions
                    try
                    {
                        driver.FindElement(By.Id("SalesHyperLink2")).Click();
                        Thread.Sleep(2000);
                    }
                    catch { }
                    //Building/Construction Permit Data
                    try
                    {
                        driver.FindElement(By.Id("PermitHyperLink2")).Click();
                        Thread.Sleep(2000);
                    }
                    catch { }
                    //Parcel Numbering History
                    try
                    {
                        driver.FindElement(By.Id("NumberingHyperLink2")).Click();
                        Thread.Sleep(2000);
                    }
                    catch { }
                    //Location Information
                    try
                    {
                        driver.FindElement(By.Id("LocationHyperLink2")).Click();
                        Thread.Sleep(2000);
                    }
                    catch { }
                    //Solid Waste
                    try
                    {
                        driver.FindElement(By.Id("GarbageHyperLink2")).Click();
                        Thread.Sleep(2000);
                    }
                    catch { }
                    //Flood and Storm Information
                    try
                    {
                        driver.FindElement(By.Id("ElevationHyperLink2")).Click();
                        Thread.Sleep(2000);
                    }
                    catch { }
                    //Appraisal Details (Current Working Values)
                    try
                    {
                        driver.FindElement(By.Id("AppraisalHyperLinkCurrent2")).Click();
                        Thread.Sleep(2000);
                    }
                    catch { }
                    gc.CreatePdf(orderNumber, parcelNumber, "Extended Click", driver, "FL", "Lee");
                    //Tax Authority Details
                    string TaxAuthority = "", TaxAuthority1 = "", TaxAuthority2 = "", TaxAuthority3 = "", TaxAuthority4 = "";
                    try
                    {
                        driver.Navigate().GoToUrl("https://www.leetc.com/contact-us");
                        TaxAuthority = driver.FindElement(By.XPath("//*[@id='form1']/div[4]/div/div/div[2]/div[1]/div[2]/p[4]")).Text;
                    }
                    catch { }
                    //Property Details Insert
                    string PropertyDetails = FolioNo.Trim() + "~" + PropertyAddress.Trim() + "~" + ownername + "~" + Legaldes.Trim() + "~" + Yearbuilt.Trim() + "~" + Usecode.Trim() + "~" + Usecodedescri.Trim() + "~" + TaxAuthority.Trim();
                    gc.insert_date(orderNumber, ParcelID, 1506, PropertyDetails, 1, DateTime.Now);
                    //Tax Information Details
                    driver.Navigate().GoToUrl("https://www.leetc.com/ncp/search_criteria.asp?searchtype=RP");

                    string Parcelnum = "", Propertyadd = "", Owner = "", TaxYear = "", Status = "", Totaldue1 = "", Totaldue = "", Asofgoodamt = "", Paidamt = "", Paiddate = "", Effdate = "", Certinum = "", Goodthroughdate = "";

                    driver.FindElement(By.Id("account_query1")).SendKeys(ParcelID.Replace(".", "").Replace("-", "").Trim());
                    SelectElement ss = new SelectElement(driver.FindElement(By.Id("account_queryAddl")));
                    ss.SelectByText("All");
                    driver.FindElement(By.Id("searchsubmit")).SendKeys(Keys.Enter);
                    Thread.Sleep(9000);
                    gc.CreatePdf(orderNumber, parcelNumber, "Tax History pdf", driver, "FL", "Lee");
                    //Payment History Details
                    string              SSBillType1 = "", SSStatus1 = "", SSDuedate1 = "", Owneradd = "", SSDue1 = "";
                    string              Syear        = DateTime.Now.Year.ToString();
                    int                 iyear        = Int32.Parse(Syear);
                    List <string>       billinfo     = new List <string>();
                    IWebElement         Billsinfo2   = driver.FindElement(By.Id("resultstable"));
                    IList <IWebElement> TRBillsinfo2 = Billsinfo2.FindElements(By.TagName("tr"));
                    IList <IWebElement> Aherftax;

                    foreach (IWebElement row in TRBillsinfo2)
                    {
                        Aherftax = row.FindElements(By.TagName("td"));

                        if (Aherftax.Count != 0 && Aherftax.Count == 5 && !row.Text.Contains("Account"))
                        {
                            SSBillType1 = Aherftax[0].Text;
                            SSStatus1   = Aherftax[1].Text;
                            SSDuedate1  = Aherftax[2].Text;
                            string[] SSDuedate1split = SSDuedate1.Split('\r');
                            Owneradd = SSDuedate1split[0].Trim();
                            SSDue1   = Aherftax[3].Text;

                            string Paymentdetails = SSStatus1.Trim() + "~" + Owneradd.Trim() + "~" + SSDue1.Trim();
                            gc.insert_date(orderNumber, ParcelID, 1602, Paymentdetails, 1, DateTime.Now);
                        }
                        if (billinfo.Count < 3 && Aherftax.Count != 0 && Aherftax[0].Text.Trim() != "" && !row.Text.Contains("Account"))
                        {
                            if (iyear == Convert.ToInt32(SSStatus1))
                            {
                                IWebElement value1  = Aherftax[0].FindElement(By.TagName("a"));
                                string      addview = value1.GetAttribute("href");
                                billinfo.Add(addview);
                            }
                            else if ((Convert.ToInt32(iyear) - 1) == Convert.ToInt32(SSStatus1))
                            {
                                IWebElement value1  = Aherftax[0].FindElement(By.TagName("a"));
                                string      addview = value1.GetAttribute("href");
                                billinfo.Add(addview);
                            }

                            else if ((Convert.ToInt32(iyear) - 2) == Convert.ToInt32(SSStatus1))
                            {
                                IWebElement value1  = Aherftax[0].FindElement(By.TagName("a"));
                                string      addview = value1.GetAttribute("href");
                                billinfo.Add(addview);
                            }
                            else if ((Convert.ToInt32(iyear) - 3) == Convert.ToInt32(SSStatus1))
                            {
                                IWebElement value1  = Aherftax[0].FindElement(By.TagName("a"));
                                string      addview = value1.GetAttribute("href");
                                billinfo.Add(addview);
                            }
                        }
                    }
                    int i = 0;
                    foreach (string assessmentclick in billinfo)
                    {
                        driver.Navigate().GoToUrl(assessmentclick);
                        gc.CreatePdf(orderNumber, parcelNumber, "Tax Page" + i, driver, "FL", "Lee");
                        Parcelnum   = driver.FindElement(By.XPath("/html/body/div[2]/div[1]/div/div/div/table/tbody/tr[3]/td[1]/span/a")).Text.Trim();
                        Propertyadd = driver.FindElement(By.XPath("/html/body/div[2]/div[1]/div/div/div/table/tbody/tr[9]/td[1]")).Text.Trim();
                        Owner       = driver.FindElement(By.XPath("/html/body/div[2]/div[1]/div/div/div/table/tbody/tr[7]/td/span")).Text.Trim();
                        TaxYear     = driver.FindElement(By.XPath("/html/body/div[2]/div[1]/div/div/div/table/tbody/tr[3]/td[2]")).Text.Trim();
                        Status      = driver.FindElement(By.XPath("/html/body/div[2]/div[1]/div/div/div/table/tbody/tr[3]/td[3]/span/a")).Text.Trim();
                        try
                        {
                            Totaldue1 = driver.FindElement(By.XPath("/html/body/div[2]/div[1]/div/div/div/table/tbody/tr[12]/td[2]")).Text.Trim();
                        }
                        catch { }
                        try
                        {
                            if (!Totaldue1.Contains("Status"))
                            {
                                Totaldue = driver.FindElement(By.XPath("/html/body/div[2]/div[1]/div/div/div/table/tbody/tr[12]/td[2]")).Text.Trim();
                            }
                        }
                        catch { }
                        string Taxinformationdetails = Propertyadd.Trim() + "~" + Owner.Trim() + "~" + TaxYear.Trim() + "~" + Status.Trim() + "~" + Totaldue.Trim();
                        gc.insert_date(orderNumber, Parcelnum, 1519, Taxinformationdetails, 1, DateTime.Now);
                        //Tax Distribution Details
                        //Ad Valorem Details
                        string Taxingauthority = "", Millrate = "", Assess = "", Exempt = "", Taxable1 = "", Amount = "", Taxtype = "";

                        driver.FindElement(By.XPath("/html/body/div[2]/div[1]/div/div/div/span/ul/li[2]/a")).Click();
                        Thread.Sleep(2000);
                        gc.CreatePdf(orderNumber, parcelNumber, "Ad valorem" + i, driver, "FL", "Lee");
                        Taxtype = driver.FindElement(By.XPath("/html/body/div[2]/div[1]/div/div/div/div[2]/table[2]/tbody/tr/td/span/strong")).Text.Replace("Taxes", "").Trim();
                        IWebElement         Bigdata1   = driver.FindElement(By.Id("advalorem"));
                        IList <IWebElement> TRBigdata1 = Bigdata1.FindElements(By.TagName("tr"));
                        IList <IWebElement> TDBigdata1;
                        foreach (IWebElement row1 in TRBigdata1)
                        {
                            TDBigdata1 = row1.FindElements(By.TagName("td"));

                            if (TDBigdata1.Count != 0 && TDBigdata1.Count == 6 && !row1.Text.Contains("Taxing Authority"))
                            {
                                Taxingauthority = TDBigdata1[0].Text;
                                Millrate        = TDBigdata1[1].Text;
                                Assess          = TDBigdata1[2].Text;
                                Exempt          = TDBigdata1[3].Text;
                                Taxable1        = TDBigdata1[4].Text;
                                Amount          = TDBigdata1[5].Text;

                                string Advaloremdetails = TaxYear.Trim() + "~" + Taxtype.Trim() + "~" + Taxingauthority.Trim() + "~" + Millrate.Trim() + "~" + Assess.Trim() + "~" + Exempt.Trim() + "~" + Taxable1.Trim() + "~" + Amount.Trim();
                                gc.insert_date(orderNumber, Parcelnum, 1521, Advaloremdetails, 1, DateTime.Now);
                            }
                        }
                        //Non Ad Valorem Details
                        string NonadTaxingauthority = "", Rate = "", Basis = "", NonadAmount = "", NonadTaxtype = "";

                        try
                        {       // driver.FindElement(By.XPath("/html/body/div[2]/div[1]/div/div/div/span/ul/li[2]/a")).Click();
                            NonadTaxtype = driver.FindElement(By.XPath("/html/body/div[2]/div[1]/div/div/div/div[2]/table[5]/tbody/tr/td/span/strong")).Text.Replace("Assessments", "").Trim();
                            IWebElement         Bigdata2   = driver.FindElement(By.Id("nonadvalorem"));
                            IList <IWebElement> TRBigdata2 = Bigdata2.FindElements(By.TagName("tr"));
                            IList <IWebElement> TDBigdata2;
                            foreach (IWebElement row2 in TRBigdata2)
                            {
                                TDBigdata2 = row2.FindElements(By.TagName("td"));

                                if (TDBigdata2.Count != 0 && TDBigdata2.Count == 4 && !row2.Text.Contains("Taxing Authority"))
                                {
                                    NonadTaxingauthority = TDBigdata2[0].Text;
                                    Rate        = TDBigdata2[1].Text;
                                    Basis       = TDBigdata2[2].Text;
                                    NonadAmount = TDBigdata2[3].Text;

                                    string NonAdvaloremdetails = TaxYear.Trim() + "~" + NonadTaxtype.Trim() + "~" + NonadTaxingauthority.Trim() + "~" + Rate.Trim() + "~" + Basis.Trim() + "~" + NonadAmount.Trim();
                                    gc.insert_date(orderNumber, Parcelnum, 1523, NonAdvaloremdetails, 1, DateTime.Now);
                                }
                            }
                        }
                        catch
                        { }
                        //Due Date Details
                        try
                        {
                            IWebElement         valuetableElement = driver.FindElement(By.XPath("/html/body/div[2]/div[1]/div/div/div/div[2]/table[8]/tbody/tr/td/table/tbody"));
                            IList <IWebElement> valuetableRow     = valuetableElement.FindElements(By.TagName("tr"));
                            IList <IWebElement> valuerowTD;
                            List <string>       Ifpaidby  = new List <string>();
                            List <string>       Pleasepay = new List <string>();
                            int s = 0;
                            foreach (IWebElement row2 in valuetableRow)
                            {
                                valuerowTD = row2.FindElements(By.TagName("td"));
                                if (valuerowTD.Count != 0 && !row2.Text.Contains("Amount Due If Paid In") && valuerowTD.Count == 5)
                                {
                                    if (s == 0)
                                    {
                                        Ifpaidby.Add(valuerowTD[0].Text.Trim());
                                        Ifpaidby.Add(valuerowTD[1].Text.Trim());
                                        Ifpaidby.Add(valuerowTD[2].Text.Trim());
                                        Ifpaidby.Add(valuerowTD[3].Text.Trim());
                                        Ifpaidby.Add(valuerowTD[4].Text.Trim());
                                    }
                                    else if (s == 1)
                                    {
                                        Pleasepay.Add(valuerowTD[0].Text);
                                        Pleasepay.Add(valuerowTD[1].Text);
                                        Pleasepay.Add(valuerowTD[2].Text);
                                        Pleasepay.Add(valuerowTD[3].Text);
                                        Pleasepay.Add(valuerowTD[4].Text);
                                    }
                                    s++;
                                }
                            }
                            string Amountdue1 = Ifpaidby[0] + "~" + Pleasepay[0];
                            string Amountdue2 = Ifpaidby[1] + "~" + Pleasepay[1];
                            string Amountdue3 = Ifpaidby[2] + "~" + Pleasepay[2];
                            string Amountdue4 = Ifpaidby[3] + "~" + Pleasepay[3];
                            string Amountdue5 = Ifpaidby[4] + "~" + Pleasepay[4];
                            gc.insert_date(orderNumber, Parcelnum, 1524, TaxYear + "~" + Amountdue1, 1, DateTime.Now);
                            gc.insert_date(orderNumber, Parcelnum, 1524, TaxYear + "~" + Amountdue2, 1, DateTime.Now);
                            gc.insert_date(orderNumber, Parcelnum, 1524, TaxYear + "~" + Amountdue3, 1, DateTime.Now);
                            gc.insert_date(orderNumber, Parcelnum, 1524, TaxYear + "~" + Amountdue4, 1, DateTime.Now);
                            gc.insert_date(orderNumber, Parcelnum, 1524, TaxYear + "~" + Amountdue5, 1, DateTime.Now);
                        }
                        catch { }
                        //Tax History Details
                        try
                        {
                            string Taxyearhis = "", Taxablevalue = "", Exemptions = "", Totaltax = "";
                            driver.FindElement(By.XPath("/html/body/div[2]/div[1]/div/div/div/span/ul/li[5]/a")).Click();
                            Thread.Sleep(2000);
                            gc.CreatePdf(orderNumber, Parcelnum, "Tax History" + i, driver, "FL", "Lee");
                            IWebElement         Bigdata4   = driver.FindElement(By.Id("history"));
                            IList <IWebElement> TRBigdata4 = Bigdata4.FindElements(By.TagName("tr"));
                            IList <IWebElement> TDBigdata4;
                            foreach (IWebElement row4 in TRBigdata4)
                            {
                                TDBigdata4 = row4.FindElements(By.TagName("td"));

                                if (TDBigdata4.Count != 0 && TDBigdata4.Count == 5 && !row4.Text.Contains("Tax Year"))
                                {
                                    Taxyearhis   = TDBigdata4[0].Text;
                                    Taxablevalue = TDBigdata4[2].Text;
                                    Exemptions   = TDBigdata4[3].Text;
                                    Totaltax     = TDBigdata4[4].Text;

                                    string Taxhistorydetails = Taxyearhis.Trim() + "~" + Taxablevalue.Trim() + "~" + Exemptions.Trim() + "~" + Totaltax.Trim();
                                    gc.insert_date(orderNumber, Parcelnum, 1526, Taxhistorydetails, 1, DateTime.Now);
                                }
                            }
                        }
                        catch { }
                        //Delinquent Taxes
                        try
                        {
                            driver.FindElement(By.XPath("/html/body/div[2]/div[1]/div/div/div/span/ul/li[4]/a")).Click();
                            string Certificate = "", year = "", Status1 = "", Balance1 = "", Balance2 = "", title = "";
                            gc.CreatePdf(orderNumber, Parcelnum, "View Bill Yearwise" + i, driver, "FL", "Lee");
                            IWebElement         Bigdata5   = driver.FindElement(By.Id("stacktable"));
                            IList <IWebElement> TRBigdata5 = Bigdata5.FindElements(By.TagName("tr"));
                            IList <IWebElement> TDBigdata5;
                            foreach (IWebElement row5 in TRBigdata5)
                            {
                                TDBigdata5 = row5.FindElements(By.TagName("td"));
                                if (TDBigdata5.Count != 0 && TDBigdata5.Count == 6 && row5.Text.Contains("Certificate"))
                                {
                                    title = TDBigdata5[0].Text + "~" + TDBigdata5[1].Text + "~" + TDBigdata5[3].Text + "~" + TDBigdata5[4].Text + "~" + TDBigdata5[5].Text;
                                    db.ExecuteQuery("update data_field_master set Data_Fields_Text='" + title + "' where Id = '" + 1533 + "'");
                                }
                                if (TDBigdata5.Count != 0 && TDBigdata5.Count == 6 && !row5.Text.Contains("Certificate"))
                                {
                                    Certificate = TDBigdata5[0].Text;
                                    year        = TDBigdata5[1].Text;
                                    Status1     = TDBigdata5[3].Text;
                                    Balance1    = TDBigdata5[4].Text;
                                    Balance2    = TDBigdata5[5].Text;

                                    string UTaxDetails = Certificate.Trim() + "~" + year.Trim() + "~" + Status1.Trim() + "~" + Balance1.Trim() + "~" + Balance2.Trim();
                                    gc.insert_date(orderNumber, Parcelnum, 1533, UTaxDetails, 1, DateTime.Now);
                                }
                            }
                        }
                        catch { }
                        //Payments Details
                        try
                        {
                            driver.FindElement(By.XPath("/html/body/div[2]/div[1]/div/div/div/span/ul/li[3]/a")).Click();
                            Thread.Sleep(2000);
                            string title1 = "", Paymenttaxyear = "", PaymentAccount = "", Processed = "", AsPaid = "", AmountPaid = "";
                            gc.CreatePdf(orderNumber, Parcelnum, "Payment Details" + i, driver, "FL", "Lee");
                            IWebElement         Bigdata6 = driver.FindElement(By.Id("stacktable"));
                            IList <IWebElement> TRBigdata6 = Bigdata6.FindElements(By.TagName("tr"));
                            IList <IWebElement> TDBigdata6;
                            foreach (IWebElement row6 in TRBigdata6)
                            {
                                TDBigdata6 = row6.FindElements(By.TagName("td"));
                                if (TDBigdata6.Count != 0 && TDBigdata6.Count == 5 && row6.Text.Contains("Tax Year"))
                                {
                                    title1 = TDBigdata6[0].Text.Trim() + "~" + TDBigdata6[2].Text.Trim() + "~" + TDBigdata6[3].Text.Trim() + "~" + TDBigdata6[4].Text.Trim();
                                    db.ExecuteQuery("update data_field_master set Data_Fields_Text='" + title1 + "' where Id = '" + 1601 + "'");
                                }
                                if (TDBigdata6.Count != 0 && TDBigdata6.Count == 5 && !row6.Text.Contains("Tax Year"))
                                {
                                    Paymenttaxyear = TDBigdata6[0].Text;
                                    Processed      = TDBigdata6[2].Text;
                                    AsPaid         = TDBigdata6[3].Text;
                                    AmountPaid     = TDBigdata6[4].Text;
                                    string UTaxDetails = Paymenttaxyear + "~" + Processed + "~" + AsPaid + "~" + AmountPaid;
                                    gc.insert_date(orderNumber, Parcelnum, 1601, UTaxDetails, 1, DateTime.Now);
                                }
                            }
                        }
                        catch { }

                        i++;
                    }
                    TaxTime = DateTime.Now.ToString("HH:mm:ss");
                    driver.Quit();
                    gc.mergpdf(orderNumber, "FL", "Lee");
                    LastEndTime = DateTime.Now.ToString("HH:mm:ss");
                    gc.insert_TakenTime(orderNumber, "FL", "Lee", StartTime, AssessmentTime, TaxTime, CitytaxTime, LastEndTime);
                    return("Data Inserted Successfully");
                }
                catch (Exception ex)
                {
                    driver.Quit();
                    GlobalClass.LogError(ex, orderNumber);
                    throw ex;
                }
            }
        }
        public string FTP_LarimerCO(string houseno, string sname, string stype, string account, string parcelNumber, string ownername, string searchType, string orderNumber, string directParcel)
        {
            GlobalClass.global_orderNo             = orderNumber;
            HttpContext.Current.Session["orderNo"] = orderNumber;
            GlobalClass.global_parcelNo            = parcelNumber;
            string StartTime = "", AssessmentTime = "", TaxTime = "", CitytaxTime = "", LastEndTime = "";
            string straccount = "", strOwner = "", strOccuPancy = "", strAddress = "", multicount = "";
            var    driverService = PhantomJSDriverService.CreateDefaultService();

            driverService.HideCommandPromptWindow = true;
            //driver = new PhantomJSDriver();
            //driver = new ChromeDriver();
            var option = new ChromeOptions();

            option.AddArgument("No-Sandbox");
            using (driver = new ChromeDriver(option))
            {
                try
                {
                    StartTime = DateTime.Now.ToString("HH:mm:ss");
                    //old
                    //http://www.co.larimer.co.us/assessor/query/search.cfm
                    driver.Navigate().GoToUrl("https://www.larimer.org/assessor/search#/property/");

                    if (searchType == "titleflex")
                    {
                        string address = houseno + " " + sname + " " + stype + " " + account;
                        gc.TitleFlexSearch(orderNumber, "", ownername, address, "CO", "Larimer");
                        if ((HttpContext.Current.Session["TitleFlex_Search"] != null && HttpContext.Current.Session["TitleFlex_Search"].ToString() == "Yes"))
                        {
                            driver.Quit();
                            return("MultiParcel");
                        }
                        else if (HttpContext.Current.Session["titleparcel"].ToString() == "")
                        {
                            HttpContext.Current.Session["Nodata_LarimerCO"] = "Yes";
                            driver.Quit();
                            return("No Data Found");
                        }
                        parcelNumber = HttpContext.Current.Session["titleparcel"].ToString();
                        searchType   = "parcel";
                    }

                    if (searchType == "address")
                    {
                        driver.FindElement(By.Id("fromAddrNum")).SendKeys(houseno);
                        driver.FindElement(By.Id("address")).SendKeys(sname);
                        gc.CreatePdf_WOP(orderNumber, "Address Search", driver, "CO", "Larimer");
                        driver.FindElement(By.XPath("//*[@id='searchForm']/div/div[2]/div/button")).SendKeys(Keys.Enter);
                        Thread.Sleep(3000);
                        try
                        {
                            multicount = driver.FindElement(By.XPath("//*[@id='resultsTable']/thead/tr[1]/td/table-header-sm/div[2]/div[1]/span[1]")).Text.Trim();
                            if (Convert.ToInt32(multicount) > 1 && Convert.ToInt32(multicount) != 0)
                            {
                                if (Convert.ToInt32(multicount) > 25)
                                {
                                    HttpContext.Current.Session["multiParcel_LarimerCO_Maximum"] = "Maximum";
                                    driver.Quit();
                                }

                                try
                                {
                                    IWebElement   IMultiChoose = driver.FindElement(By.Id("items2"));
                                    SelectElement Smultiselect = new SelectElement(IMultiChoose);
                                    Smultiselect.SelectByText("41");
                                }
                                catch { }

                                IWebElement         IMultiAddress = driver.FindElement(By.XPath("//*[@id='resultsTable']/tbody"));
                                IList <IWebElement> IMultiRow     = IMultiAddress.FindElements(By.TagName("tr"));
                                IList <IWebElement> IMultiTd;
                                foreach (IWebElement multi in IMultiRow)
                                {
                                    IMultiTd = multi.FindElements(By.TagName("td"));
                                    if (IMultiTd.Count != 0)
                                    {
                                        straccount   = IMultiTd[0].Text;
                                        strOwner     = IMultiTd[2].Text;
                                        strOccuPancy = IMultiTd[3].Text;
                                        strAddress   = IMultiTd[4].Text;

                                        string multiDetails = straccount + "~" + strOwner + "~" + strOccuPancy + "~" + strAddress;
                                        gc.insert_date(orderNumber, IMultiTd[1].Text, 634, multiDetails, 1, DateTime.Now);
                                    }
                                }
                                gc.CreatePdf_WOP(orderNumber, "Multi Address Search", driver, "CO", "Larimer");
                                HttpContext.Current.Session["multiParcel_LarimerCO"] = "Yes";
                                driver.Quit();
                                return("MultiParcel");
                            }
                        }
                        catch { }
                    }
                    if (searchType == "parcel")
                    {
                        driver.FindElement(By.Id("parcelno")).SendKeys(parcelNumber);
                        gc.CreatePdf(orderNumber, parcelNumber, "Parcel Search", driver, "CO", "Larimer");
                        driver.FindElement(By.XPath("//*[@id='searchForm']/div/div[2]/div/button")).SendKeys(Keys.Enter);
                        Thread.Sleep(3000);
                        try
                        {
                            multicount = driver.FindElement(By.XPath("//*[@id='resultsTable']/thead/tr[1]/td/table-header-sm/div[2]/div[1]/span[1]")).Text.Trim();
                            if (Convert.ToInt32(multicount) > 1 && Convert.ToInt32(multicount) != 0)
                            {
                                driver.FindElement(By.XPath("//*[@id='resultsTable']/tbody/tr[1]/td[2]")).Click();
                                Thread.Sleep(2000);
                            }
                        }
                        catch { }
                    }
                    if (searchType == "account")
                    {
                        if (account.Contains("R"))
                        {
                            account = account.Replace("R", "");
                        }
                        driver.FindElement(By.Id("scheduleno")).SendKeys(account);
                        gc.CreatePdf_WOP(orderNumber, "Account Search", driver, "CO", "Larimer");
                        driver.FindElement(By.XPath("//*[@id='searchForm']/div/div[2]/div/button")).SendKeys(Keys.Enter);
                        Thread.Sleep(3000);
                        try
                        {
                            multicount = driver.FindElement(By.XPath("//*[@id='resultsTable']/thead/tr[1]/td/table-header-sm/div[2]/div[1]/span[1]")).Text.Trim();
                            if (Convert.ToInt32(multicount) > 1 && Convert.ToInt32(multicount) != 0)
                            {
                                driver.FindElement(By.XPath("//*[@id='resultsTable']/tbody/tr[1]/td[2]")).Click();
                                Thread.Sleep(2000);
                            }
                        }
                        catch { }
                    }
                    if (searchType == "ownername")
                    {
                        driver.FindElement(By.Id("name")).SendKeys(ownername);
                        gc.CreatePdf_WOP(orderNumber, "OwnerName Search", driver, "CO", "Larimer");
                        driver.FindElement(By.XPath("//*[@id='searchForm']/div/div[2]/div/button")).SendKeys(Keys.Enter);
                        Thread.Sleep(3000);
                        try
                        {
                            multicount = driver.FindElement(By.XPath("//*[@id='resultsTable']/thead/tr[1]/td/table-header-sm/div[2]/div[1]/span[1]")).Text.Trim();
                            if (Convert.ToInt32(multicount) > 1 && Convert.ToInt32(multicount) != 0)
                            {
                                if (Convert.ToInt32(multicount) > 25)
                                {
                                    HttpContext.Current.Session["multiParcel_LarimerCO_Maximum"] = "Maximum";
                                    driver.Quit();
                                }

                                try
                                {
                                    IWebElement   IMultiChoose = driver.FindElement(By.Id("items2"));
                                    SelectElement Smultiselect = new SelectElement(IMultiChoose);
                                    Smultiselect.SelectByText("41");
                                }
                                catch { }

                                IWebElement         IMultiAddress = driver.FindElement(By.XPath("//*[@id='resultsTable']/tbody"));
                                IList <IWebElement> IMultiRow     = IMultiAddress.FindElements(By.TagName("tr"));
                                IList <IWebElement> IMultiTd;
                                foreach (IWebElement multi in IMultiRow)
                                {
                                    IMultiTd = multi.FindElements(By.TagName("td"));
                                    if (IMultiTd.Count != 0)
                                    {
                                        straccount   = IMultiTd[0].Text;
                                        strOwner     = IMultiTd[2].Text;
                                        strOccuPancy = IMultiTd[3].Text;
                                        strAddress   = IMultiTd[4].Text;

                                        string multiDetails = straccount + "~" + strOwner + "~" + strOccuPancy + "~" + strAddress;
                                        gc.insert_date(orderNumber, IMultiTd[1].Text, 634, multiDetails, 1, DateTime.Now);
                                    }
                                }

                                gc.CreatePdf_WOP(orderNumber, "Multi Address Search", driver, "CO", "Larimer");
                                HttpContext.Current.Session["multiParcel_LarimerCO"] = "Yes";
                                driver.Quit();
                                return("MultiParcel");
                            }
                        }
                        catch { }
                    }

                    try
                    {
                        IWebElement INodata = driver.FindElement(By.XPath("//*[@id='main']/div[3]/div/div[2]/div/div/div/div/div[2]/table-results/div[2]"));
                        if (INodata.Text.Contains("search returned no results"))
                        {
                            HttpContext.Current.Session["Nodata_LarimerCO"] = "Yes";
                            driver.Quit();
                            return("No Data Found");
                        }
                    }
                    catch { }
                    //Property Details
                    driver.SwitchTo().Window(driver.WindowHandles.Last());
                    Thread.Sleep(2000);
                    gc.CreatePdf_WOP(orderNumber, "Switch window", driver, "CO", "Larimer");
                    ByVisibleElement(driver.FindElement(By.XPath("//*[@id='p-info']/div[2]/div/div[1]")));
                    gc.CreatePdf_WOP(orderNumber, "Switch window", driver, "CO", "Larimer");
                    driver.FindElement(By.XPath("//*[@id='detailModal']/div/div/div[1]/button[2]")).Click();
                    driver.SwitchTo().Window(driver.WindowHandles.Last());
                    Thread.Sleep(2000);
                    string strgeneralInfo = "", straddress = "", ScheduleNumber = "", strLegal = "", LegalDiscription = "", PropertyTaxYear = "", PropertyAddress = "", strownerName = "", MailingAddress = "", OwnerName = "", YearBuilt = "", PropertyType = "", Occupancy = "";
                    strgeneralInfo = driver.FindElement(By.XPath("//*[@id='p-info']/div[1]/div[1]/div[1]/div[1]")).Text;
                    parcelNumber   = gc.Between(strgeneralInfo, "Parcel Number: ", "Schedule Number:");
                    gc.CreatePdf(orderNumber, parcelNumber, "Property Search Result", driver, "CO", "Larimer");
                    ScheduleNumber   = gc.Between(strgeneralInfo, "Schedule Number: ", "Tax District:");
                    PropertyTaxYear  = gc.Between(strgeneralInfo, "Property Tax Year: ", "Current Mill Levy:");
                    strLegal         = driver.FindElement(By.XPath("//*[@id='p-info']/div[1]/div[1]/div[2]")).Text;
                    LegalDiscription = GlobalClass.After(strLegal, "Legal Description: ");
                    straddress       = driver.FindElement(By.XPath("//*[@id='p-info']/div[1]/div[1]/div[1]/div[2]")).Text;
                    PropertyAddress  = gc.Between(straddress, "Property Address:", "Owner Name & Address:");
                    strownerName     = GlobalClass.After(straddress, "Owner Name & Address:");
                    MailingAddress   = GlobalClass.After(strownerName, "\r\n\r\n");
                    OwnerName        = GlobalClass.Before(strownerName, "\r\n\r\n");

                    string              LActualValue = "", LAssessedValue = "", IActualValue = "", IAssessedValue = "", TActualValue = "", TAssessedValue = "";
                    IWebElement         IAssessmentTable = driver.FindElement(By.XPath("//*[@id='p-info']/div[3]/table/tbody"));
                    IList <IWebElement> IAssessmentRow   = IAssessmentTable.FindElements(By.TagName("tr"));
                    IList <IWebElement> IAssessmentTD;
                    foreach (IWebElement Assessment in IAssessmentRow)
                    {
                        IAssessmentTD = Assessment.FindElements(By.TagName("td"));
                        if (IAssessmentTD.Count != 0 && !Assessment.Text.Contains("Totals:") && Assessment.Text.Contains("Land"))
                        {
                            LActualValue   = IAssessmentTD[3].Text;
                            LAssessedValue = IAssessmentTD[4].Text;
                        }
                        if (IAssessmentTD.Count != 0 && !Assessment.Text.Contains("Totals:") && (Assessment.Text.Contains("Improvement") || Assessment.Text.Contains("Building")))
                        {
                            IActualValue   = IAssessmentTD[3].Text;
                            IAssessedValue = IAssessmentTD[4].Text;
                        }
                        if (IAssessmentTD.Count != 0 && Assessment.Text.Contains("Totals:"))
                        {
                            TActualValue   = IAssessmentTD[1].Text;
                            TAssessedValue = IAssessmentTD[2].Text;
                        }
                    }
                    string AssessmentDetails = PropertyTaxYear + "~" + LActualValue + "~" + IActualValue + "~" + TActualValue + "~" + LAssessedValue + "~" + IAssessedValue + "~" + TAssessedValue;
                    gc.insert_date(orderNumber, parcelNumber, 640, AssessmentDetails, 1, DateTime.Now);

                    driver.FindElement(By.LinkText("Building Info")).Click();
                    gc.CreatePdf(orderNumber, parcelNumber, "Year Build", driver, "CO", "Larimer");
                    try
                    {
                        IWebElement         Iyear    = driver.FindElement(By.XPath("//*[@id='imp']/tbody"));
                        IList <IWebElement> IyearRow = Iyear.FindElements(By.TagName("tr"));
                        IList <IWebElement> IyearTD;
                        foreach (IWebElement year in IyearRow)
                        {
                            IyearTD = year.FindElements(By.TagName("td"));
                            if (IyearTD.Count != 0 && year.Text.Contains("Year Built from:"))
                            {
                                YearBuilt = IyearTD[1].Text;
                            }
                            if (IyearTD.Count != 0 && year.Text.Contains("Property Type:"))
                            {
                                PropertyType = IyearTD[1].Text;
                            }
                            if (IyearTD.Count != 0 && year.Text.Contains("Occupancy:"))
                            {
                                Occupancy = IyearTD[1].Text;
                            }
                        }
                    }
                    catch { }
                    ByVisibleElement(driver.FindElement(By.XPath("//*[@id='main']/div[3]/div/div[2]/div/div/div/div/div[4]/div[2]/div/div[3]/div[2]/table")));
                    gc.CreatePdf(orderNumber, parcelNumber, "Building Info", driver, "CO", "Larimer");
                    string PropertyDetails = ScheduleNumber + "~" + OwnerName + "~" + PropertyAddress + "~" + MailingAddress + "~" + LegalDiscription + "~" + YearBuilt + "~" + PropertyType + "~" + Occupancy;
                    gc.insert_date(orderNumber, parcelNumber, 639, PropertyDetails, 1, DateTime.Now);
                    driver.SwitchTo().DefaultContent();
                    string TaxParcelNo = "", TaxYear = "", TaxPeriod = "", TaxDue = "", TaxAmount = "", TaxAuthority = "", TaxAuthOffice = "", TaxAuthAddress = "";
                    AssessmentTime = DateTime.Now.ToString("HH:mm:ss");
                    try
                    {
                        var chromeOptions      = new ChromeOptions();
                        var chDriver           = new ChromeDriver(chromeOptions);
                        IJavaScriptExecutor js = (IJavaScriptExecutor)chDriver;
                        try
                        {
                            chDriver.Navigate().GoToUrl("https://www.larimer.org/treasurer/search");
                            chDriver.FindElement(By.Id("parcelno")).SendKeys(parcelNumber);
                            chDriver.FindElement(By.XPath("//*[@id='searchForm']/div[2]/div[2]/input")).SendKeys(Keys.Enter);
                            Thread.Sleep(3000);
                            chDriver.FindElement(By.XPath("//*[@id='resultsTable']/tbody/tr")).Click();
                            Thread.Sleep(5000);
                            try
                            {
                                IWebElement IPrperty = chDriver.FindElement(By.XPath("//*[@id='detailModal']/div/div/div[2]/div/div/h2"));
                                js.ExecuteScript("arguments[0].scrollIntoView();", IPrperty);
                                gc.CreatePdf_Chrome(orderNumber, parcelNumber, "Tax Property", chDriver, "CO", "Larimer");
                                IWebElement IPayment = chDriver.FindElement(By.XPath("//*[@id='detailModal']/div/div/div[2]/div/div/div[2]/div[2]"));
                                js.ExecuteScript("arguments[0].scrollIntoView();", IPayment);
                                gc.CreatePdf_Chrome(orderNumber, parcelNumber, "Tax Payment", chDriver, "CO", "Larimer");
                                IWebElement IStPayment = chDriver.FindElement(By.XPath("//*[@id='detailModal']/div/div/div[2]/div/div/div[5]/div[1]"));
                                js.ExecuteScript("arguments[0].scrollIntoView();", IStPayment);
                                gc.CreatePdf_Chrome(orderNumber, parcelNumber, "Tax StPayment", chDriver, "CO", "Larimer");
                                IWebElement ILevy = chDriver.FindElement(By.XPath("//*[@id='detailModal']/div/div/div[2]/div/div/div[5]/div[2]"));
                                js.ExecuteScript("arguments[0].scrollIntoView();", ILevy);
                                gc.CreatePdf_Chrome(orderNumber, parcelNumber, "Tax Levy", chDriver, "CO", "Larimer");
                            }
                            catch { }
                            chDriver.Quit();
                        }

                        catch (Exception ex)
                        {
                            try
                            {
                                chDriver.Navigate().GoToUrl("https://www.larimer.org/treasurer/search");
                                chDriver.FindElement(By.Id("parcelno")).SendKeys(parcelNumber);

                                int    Year        = DateTime.Now.Year;
                                string currentyear = "";
                                for (int i = 1; i < 3; i++)
                                {
                                    currentyear = Convert.ToString(Year - 2);
                                }
                                IWebElement   ITaxYear = driver.FindElement(By.XPath("//*[@id='main']/div[3]/div/div[2]/div/div/div/div/div/div[2]/div[2]/form/select"));
                                SelectElement STaxYear = new SelectElement(ITaxYear);
                                STaxYear.SelectByText(currentyear);
                                TaxYear = STaxYear.SelectedOption.Text;
                                Thread.Sleep(2000);
                            }
                            catch { }
                        }

                        chDriver.Quit();
                    }
                    catch
                    {
                    }



                    driver.Navigate().GoToUrl("https://www.larimer.org/treasurer/search");
                    driver.FindElement(By.Id("parcelno")).SendKeys(parcelNumber);
                    gc.CreatePdf(orderNumber, parcelNumber, "Tax Search", driver, "CO", "Larimer");
                    driver.FindElement(By.XPath("//*[@id='searchForm']/div[2]/div[2]/input")).SendKeys(Keys.Enter);
                    Thread.Sleep(3000);
                    gc.CreatePdf(orderNumber, parcelNumber, "Tax Search Result", driver, "CO", "Larimer");
                    //*[@id="resultsTable"]/tbody/tr/td[2]
                    //*[@id="resultsTable"]/tbody/tr
                    try
                    {
                        driver.FindElement(By.XPath(" //*[@id='resultsTable']/tbody/tr/td[2]")).Click();
                        Thread.Sleep(2000);
                    }
                    catch { }
                    try
                    {
                        driver.FindElement(By.XPath("//*[@id='resultsTable']/tbody/tr")).Click();
                        Thread.Sleep(2000);
                    }
                    catch { }
                    gc.CreatePdf(orderNumber, parcelNumber, "Tax Result", driver, "CO", "Larimer");
                    driver.SwitchTo().Window(driver.WindowHandles.Last());
                    Thread.Sleep(2000);
                    //*[@id="detailModal"]/div/div/div[1]/button[2]/i
                    driver.FindElement(By.XPath(" //*[@id='detailModal']/div/div/div[1]/button[2]/i")).Click();
                    Thread.Sleep(3000);
                    driver.SwitchTo().Window(driver.WindowHandles.Last());
                    string parcelsearch = driver.FindElement(By.XPath("//*[@id='main']/div[3]/div/div[2]/div/div/div/div/div/div[3]/div[1]/div[2]/p[3]/span[2]")).Text;
                    TaxParcelNo = GlobalClass.After(parcelsearch, "Parcel Number: ");
                    try
                    {
                        int    Year        = DateTime.Now.Year;
                        string currentyear = "";
                        for (int i = 0; i < 2; i++)
                        {
                            if (TaxYear == "")
                            {
                                try
                                {
                                    currentyear = Convert.ToString(Year);
                                    //*[@id="main"]/div[3]/div/div[2]/div/div/div/div/div/div[3]/div[1]/div[2]/form/select
                                    IWebElement   ITaxYear = driver.FindElement(By.XPath("//*[@id='main']/div[3]/div/div[2]/div/div/div/div/div/div[3]/div[1]/div[2]/form/select"));
                                    SelectElement STaxYear = new SelectElement(ITaxYear);
                                    STaxYear.SelectByText(currentyear);
                                    TaxYear = STaxYear.SelectedOption.Text;
                                    Thread.Sleep(2000);
                                }
                                catch { }
                            }
                            Year--;
                        }
                    }
                    catch { }

                    //gc.CreatePdf(orderNumber, parcelNumber, "Tax Assessment Result Details", driver, "CO", "Larimer");
                    //Tax Authority
                    TaxAuthOffice  = driver.FindElement(By.XPath("//*[@id='main']/div[3]/div/div[2]/div/div/div/div/div/div[3]/div[5]/div[2]/div/div[2]/div[1]/strong")).Text;
                    TaxAuthAddress = GlobalClass.After(driver.FindElement(By.XPath("//*[@id='main']/div[3]/div/div[2]/div/div/div/div/div/div[3]/div[5]/div[2]/div/div[2]/div[2]")).Text, "Mailing address:");
                    TaxAuthority   = TaxAuthOffice + " " + TaxAuthAddress.Replace("\r\n", " ").Trim();
                    string TaxAuth = TaxYear + "~" + "" + "~" + "" + "~" + "" + "~" + TaxAuthority;
                    gc.insert_date(orderNumber, TaxParcelNo, 641, TaxAuth, 1, DateTime.Now);

                    //Tax General Information
                    IWebElement         ITaxInfo    = driver.FindElement(By.XPath("//*[@id='main']/div[3]/div/div[2]/div/div/div/div/div/div[3]/div[2]/div[2]/table/tbody"));
                    IList <IWebElement> ITaxInfoRow = ITaxInfo.FindElements(By.TagName("tr"));
                    IList <IWebElement> ITaxInfoTD;
                    foreach (IWebElement Info in ITaxInfoRow)
                    {
                        ITaxInfoTD = Info.FindElements(By.TagName("td"));
                        if (ITaxInfoTD.Count != 0 && ITaxInfoTD.Count == 3 && !Info.Text.Contains("Payment Received Date") && !Info.Text.Contains("Calculate"))
                        {
                            TaxPeriod = ITaxInfoTD[0].Text;
                            TaxDue    = ITaxInfoTD[1].Text;
                            TaxAmount = ITaxInfoTD[2].Text;

                            string TaxInformation = "~" + TaxPeriod + "~" + TaxDue + "~" + TaxAmount + "~";
                            gc.insert_date(orderNumber, TaxParcelNo, 641, TaxInformation, 1, DateTime.Now);
                        }
                        if (ITaxInfoTD.Count != 0 && ITaxInfoTD.Count == 2 && !Info.Text.Contains("Calculate") && Info.Text.Contains("Payment Received Date") && ITaxInfoTD.Count < 3 && !Info.Text.Contains("Period"))
                        {
                            TaxPeriod = ITaxInfoTD[0].Text;
                            TaxDue    = ITaxInfoTD[1].Text;
                            TaxAmount = "";

                            string TaxInformation = "~" + TaxPeriod + "~" + TaxDue + "~" + TaxAmount + "~";
                            gc.insert_date(orderNumber, TaxParcelNo, 641, TaxInformation, 1, DateTime.Now);
                        }
                    }

                    //Tax Jurisdictions
                    string              TaxLevy = "", TaxLevyAuthority = "", TaxLevyAmount = "";
                    IWebElement         ITaxLevy    = driver.FindElement(By.XPath("//*[@id='main']/div[3]/div/div[2]/div/div/div/div/div/div[3]/div[5]/div[1]/table[2]/tbody"));
                    IList <IWebElement> ITaxLevyRow = ITaxLevy.FindElements(By.TagName("tr"));
                    IList <IWebElement> ITaxLevyTD;
                    foreach (IWebElement Levy in ITaxLevyRow)
                    {
                        ITaxLevyTD = Levy.FindElements(By.TagName("td"));
                        if (ITaxLevyTD.Count != 0)
                        {
                            TaxLevy          = ITaxLevyTD[0].Text;
                            TaxLevyAuthority = ITaxLevyTD[1].Text;
                            TaxLevyAmount    = ITaxLevyTD[2].Text;

                            string TaxLevyJuris = TaxLevy + "~" + TaxLevyAuthority + "~" + TaxLevyAmount;
                            gc.insert_date(orderNumber, TaxParcelNo, 642, TaxLevyJuris, 1, DateTime.Now);
                        }
                    }

                    //Tax statement
                    try
                    {
                        IWebElement ITaxStatement   = driver.FindElement(By.LinkText("Tax Statement"));
                        string      strTaxSattement = ITaxStatement.GetAttribute("href");
                        gc.downloadfile(strTaxSattement, orderNumber, parcelNumber, "Tax Statement", "CO", "Larimer");
                    }
                    catch { }

                    //Tax History
                    driver.FindElement(By.XPath("//*[@id='main']/div[3]/div/div[2]/div/div/div/div/div/div[3]/div[1]/div[2]/p[4]/a[1]")).Click();
                    Thread.Sleep(3000);
                    driver.SwitchTo().Window(driver.WindowHandles.Last());
                    gc.CreatePdf(orderNumber, parcelNumber, "Tax History Details", driver, "CO", "Larimer");
                    //Tax Status
                    string TaxStatusHead = "", TaxStatusAmount = "";
                    //*[@id="p-tax"]/div[3]/table[1]/tbody
                    IWebElement         ITaxStatus    = driver.FindElement(By.XPath("//*[@id='p-tax']/div[3]/table[1]/tbody"));
                    IList <IWebElement> ITaxStatusRow = ITaxStatus.FindElements(By.TagName("tr"));
                    IList <IWebElement> ITaxStatusTD;
                    foreach (IWebElement Status in ITaxStatusRow)
                    {
                        ITaxStatusTD = Status.FindElements(By.TagName("td"));
                        if (ITaxStatusTD.Count != 0)
                        {
                            TaxStatusHead   += ITaxStatusTD[0].Text.Replace("'", "").Replace("(", "").Replace(")", "") + "~";
                            TaxStatusAmount += ITaxStatusTD[1].Text + "~";
                        }
                    }
                    TaxStatusHead = TaxStatusHead.Remove(TaxStatusHead.Length - 1, 1);
                    db.ExecuteQuery("update data_field_master set Data_Fields_Text='" + TaxStatusHead + "' where Id = '" + 643 + "'");
                    TaxStatusAmount = TaxStatusAmount.Remove(TaxStatusAmount.Length - 1, 1);
                    gc.insert_date(orderNumber, TaxParcelNo, 643, TaxStatusAmount, 1, DateTime.Now);

                    //Tax History
                    string              TaxHistoryYear = "", TaxLiability = "", PropertyBalance = "", OwnerTaxLiability = "", StateTaxLiabilty = "", TotalActualValue = "", TotalAssessedValue = "";
                    IWebElement         ITaxHistory    = driver.FindElement(By.XPath("//*[@id='p-tax']/div[2]/table/tbody"));
                    IList <IWebElement> ITaxHistoryRow = ITaxHistory.FindElements(By.TagName("tr"));
                    IList <IWebElement> ITaxHistoryTD;
                    foreach (IWebElement History in ITaxHistoryRow)
                    {
                        ITaxHistoryTD = History.FindElements(By.TagName("td"));
                        if (ITaxHistoryTD.Count != 0)
                        {
                            TaxHistoryYear     = ITaxHistoryTD[0].Text;
                            TaxLiability       = ITaxHistoryTD[1].Text;
                            PropertyBalance    = ITaxHistoryTD[2].Text;
                            OwnerTaxLiability  = ITaxHistoryTD[3].Text;
                            StateTaxLiabilty   = ITaxHistoryTD[4].Text;
                            TotalActualValue   = ITaxHistoryTD[5].Text;
                            TotalAssessedValue = ITaxHistoryTD[6].Text;

                            string TaxHistoryDetails = TaxHistoryYear + "~" + TaxLiability + "~" + PropertyBalance + "~" + OwnerTaxLiability + "~" + StateTaxLiabilty + "~" + TotalActualValue + "~" + TotalAssessedValue;
                            gc.insert_date(orderNumber, TaxParcelNo, 644, TaxHistoryDetails, 1, DateTime.Now);
                        }
                    }

                    TaxTime = DateTime.Now.ToString("HH:mm:ss");

                    LastEndTime = DateTime.Now.ToString("HH:mm:ss");
                    gc.insert_TakenTime(orderNumber, "CO", "Larimer", StartTime, AssessmentTime, TaxTime, CitytaxTime, LastEndTime);

                    driver.Quit();
                    gc.mergpdf(orderNumber, "CO", "Larimer");
                    return("Data Inserted Successfully");
                }
                catch (Exception ex)
                {
                    driver.Quit();
                    throw ex;
                }
            }
        }
        public string FTP_BoulderCO(string streetno, string direction, string streetname, string city, string streettype, string unitnumber, string ownernm, string parcelNumber, string searchType, string orderNumber, string directParcel)
        {
            GlobalClass.global_orderNo             = orderNumber;
            HttpContext.Current.Session["orderNo"] = orderNumber;
            GlobalClass.global_parcelNo            = parcelNumber;
            string StartTime = "", AssessmentTime = "", TaxTime = "", CitytaxTime = "", LastEndTime = "";
            string Parcel_number = "", Tax_Authority = "", As_of = "", Total_Due = "", MillLevy = "", Class = "", Built = "";
            //request.UseDefaultCredentials = true;
            var driverService = PhantomJSDriverService.CreateDefaultService();

            driverService.HideCommandPromptWindow = true;
            //  driver = new PhantomJSDriver()
            using (driver = new PhantomJSDriver())
            {
                try
                {
                    try
                    {
                        StartTime = DateTime.Now.ToString("HH:mm:ss");
                        driver.Navigate().GoToUrl("https://www.bouldercounty.org/departments/assessor/");
                        //driver.SwitchTo().Window(driver.WindowHandles.Last());
                        IWebElement Taxauthority1 = driver.FindElement(By.XPath("//*[@id='ctl00_PlaceHolderMain_ContactBottom__ControlWrapper_RichHtmlField']"));
                        Tax_Authority = GlobalClass.After(Taxauthority1.Text, "Mailing Address");
                        // driver.Close();
                        Thread.Sleep(2000);
                    }
                    catch { }
                    driver.Navigate().GoToUrl("http://maps.boco.solutions/propertysearch/");
                    Thread.Sleep(2000);
                    // IWebElement switchwebsite = driver.FindElement(By.XPath("//*[@id='platsDiv']/div[4]/div[8]/iframe"));
                    //driver.SwitchTo().Frame(switchwebsite);
                    if (searchType == "titleflex")
                    {
                        string address = streetno + " " + direction + " " + streetname + " " + streettype;
                        gc.TitleFlexSearch(orderNumber, "", ownernm, address.Trim(), "CO", "Boulder");
                        if ((HttpContext.Current.Session["TitleFlex_Search"] != null && HttpContext.Current.Session["TitleFlex_Search"].ToString() == "Yes"))
                        {
                            driver.Quit();
                            return("MultiParcel");
                        }
                        else if (HttpContext.Current.Session["titleparcel"].ToString() == "")
                        {
                            HttpContext.Current.Session["Nodata_BoulderCO"] = "Zero";
                            driver.Quit();
                            return("No Data Found");
                        }
                        parcelNumber = HttpContext.Current.Session["titleparcel"].ToString();
                        searchType   = "parcel";
                    }
                    if (searchType == "address")
                    {
                        string address = "";
                        if (direction != "")
                        {
                            address = streetno + " " + direction + " " + streetname + " " + streettype.Trim();
                        }
                        else
                        {
                            address = streetno + " " + streetname + " " + streettype.Trim();
                        }
                        driver.FindElement(By.Id("searchField")).SendKeys(address);
                        gc.CreatePdf_WOP(orderNumber, "Address Start", driver, "CO", "Boulder");
                        Thread.Sleep(4000);
                        try
                        {
                            driver.FindElement(By.XPath("//*[@id='choices']/div/b/span")).Click();
                            Thread.Sleep(7000);
                        }
                        catch { }
                        try
                        {
                            driver.FindElement(By.XPath("/html/body/div[5]/div[1]/div/a")).Click();
                        }
                        catch { }
                        try
                        {
                            //int StateYeardropdown = driver.FindElement(By.Id("choices")).FindElements(By.ClassName("ng-scope")).Count;
                            IWebElement         addressmulti = driver.FindElement(By.XPath("//*[@id='search-grid']/div[2]/table/tbody"));
                            IList <IWebElement> Addressrow   = addressmulti.FindElements(By.TagName("tr"));
                            IList <IWebElement> Addressid;
                            foreach (IWebElement Addressmultiple in Addressrow)
                            {
                                if (Addressrow.Count != 0)
                                {
                                    Addressid = Addressmultiple.FindElements(By.TagName("td"));
                                    if (Addressid.Count != 0)
                                    {
                                        string Accountnumber = Addressid[2].Text;
                                        string Addressresult = Addressid[3].Text + "~" + Addressid[4].Text;
                                        gc.insert_date(orderNumber, Accountnumber, 835, Addressresult, 1, DateTime.Now);
                                    }
                                }
                            }
                            if (Addressrow.Count < 26 && Addressrow.Count != 0)
                            {
                                HttpContext.Current.Session["multiparcel_Boulder"] = "Yes";
                                gc.CreatePdf_WOP(orderNumber, "MultyAddressSearch", driver, "CO", "Boulder");
                                driver.Quit();
                                return("MultiParcel");
                            }
                            if (Addressrow.Count > 25 && Addressrow.Count != 0)
                            {
                                HttpContext.Current.Session["multiParcel_Boulder_Multicount"] = "Maximum";
                                gc.CreatePdf_WOP(orderNumber, "MultyAddressSearch", driver, "CO", "Boulder");
                                driver.Quit();
                                return("Maximum");
                            }
                        }
                        catch { }
                    }
                    if (searchType == "parcel")
                    {
                        driver.FindElement(By.Id("searchField")).SendKeys(parcelNumber);
                        Thread.Sleep(8000);
                        gc.CreatePdf_WOP(orderNumber, "parcel", driver, "CO", "Boulder");
                        try
                        {
                            driver.FindElement(By.XPath("//*[@id='choices']/div/b/span")).Click();
                            Thread.Sleep(7000);
                        }
                        catch { }
                        try
                        {
                            driver.FindElement(By.XPath("/html/body/div[5]/div[1]/div/a")).Click();
                        }
                        catch { }
                        try
                        {
                            driver.FindElement(By.XPath("/html/body/div[2]/div[1]/div/a/span")).Click();
                        }
                        catch { }
                    }
                    if (searchType == "unitnumber")
                    {
                        driver.FindElement(By.Id("searchField")).SendKeys(unitnumber);
                        Thread.Sleep(9000);
                        gc.CreatePdf_WOP(orderNumber, "parcel", driver, "CO", "Boulder");
                        driver.FindElement(By.Id("searchField")).SendKeys(Keys.Space);
                        //driver.FindElement(By.XPath("//*[@id='choices']/div/b/span")).Click();
                        Thread.Sleep(7000);
                        try
                        {
                            driver.FindElement(By.XPath("/html/body/div[2]/div[1]/div")).Click();
                        }
                        catch { }
                    }

                    try
                    {
                        IWebElement Inodata = driver.FindElement(By.Id("autocomplete"));
                        if (Inodata.Text.Contains("Invalid entry"))
                        {
                            HttpContext.Current.Session["Nodata_BoulderCO"] = "Zero";
                            driver.Quit();
                            return("No Data Found");
                        }
                    }
                    catch { }
                    driver.FindElement(By.XPath("//*[@id='propertyInfo']/span")).Click();
                    Thread.Sleep(7000);
                    gc.CreatePdf_WOP(orderNumber, "Property Search", driver, "CO", "Boulder");

                    IWebElement propertytable   = driver.FindElement(By.XPath("//*[@id='propertyInfo']/div/property/div[1]/div[3]"));
                    string      PropertyAddress = gc.Between(propertytable.Text, "Property Address:", "Location:").Trim();
                    string      City            = gc.Between(propertytable.Text, "City:", "Zip:").Trim();
                    string      Owner           = gc.Between(propertytable.Text, "Owner:", "Mailing Address:").Trim();
                    Parcel_number = gc.Between(propertytable.Text, "Parcel Number:", "Property Address:").Trim();
                    string AccountNumber    = gc.Between(propertytable.Text, "Account Number:", "Owner:").Trim();
                    string MailingAddress   = gc.Between(propertytable.Text, "Mailing Address:", "City:").Trim();
                    string Zip              = gc.Between(propertytable.Text, "Zip:", "Sec-Town-Range:").Trim();
                    string SecTown_Range    = gc.Between(propertytable.Text, "Sec-Town-Range:", "Subdivision:").Trim();
                    string Subdivision      = gc.Between(propertytable.Text, "Subdivision:", "Market Area:").Trim();
                    string Jurisdiction     = gc.Between(propertytable.Text, "Jurisdiction:", "Legal Description:").Trim();
                    string LegalDescription = gc.Between(propertytable.Text, "Legal Description:", "Est. Parcel Area:").Trim();
                    string Acres            = GlobalClass.After(propertytable.Text, "Acres:").Trim();
                    driver.FindElement(By.XPath("//*[@id='dataDisplay']/ul/li[2]/span")).Click();
                    Thread.Sleep(3000);
                    gc.CreatePdf_WOP(orderNumber, "Property Search2", driver, "CO", "Boulder");
                    IWebElement Propertytable2 = driver.FindElement(By.Id("assessmentDiv"));
                    string      TaxArea        = gc.Between(Propertytable2.Text, "Tax Area:", "No. of Improvements:");
                    string      SiteAddress    = gc.Between(Propertytable2.Text, "Site Address:", "Neighborhood:").Trim();
                    string      Neighborhood   = gc.Between(Propertytable2.Text, "Neighborhood:", "Total Account Value").Trim();
                    MillLevy = gc.Between(Propertytable2.Text, "MillLevy:", "See breakdown").Trim();
                    try
                    {
                        Class = gc.Between(Propertytable2.Text, "Class:", "Built:").Trim();
                    }
                    catch { }
                    try
                    {
                        Built = gc.Between(Propertytable2.Text, "Built:", "Design:").Trim();
                    }
                    catch { }


                    string Propertyresult = PropertyAddress + "~" + City + "~" + Owner + "~" + AccountNumber + "~" + MailingAddress + "~" + Zip + "~" + SecTown_Range + "~" + Subdivision + "~" + Jurisdiction + "~" + LegalDescription + "~" + Acres + "~" + TaxArea + "~" + SiteAddress + "~" + Neighborhood + "~" + MillLevy + "~" + Class + "~" + Built;
                    gc.insert_date(orderNumber, Parcel_number, 775, Propertyresult, 1, DateTime.Now);
                    gc.CreatePdf(orderNumber, Parcel_number, "Property Search Result", driver, "CO", "Boulder");
                    //assessment
                    AssessmentTime = DateTime.Now.ToString("HH:mm:ss");
                    IWebElement         Assessmentable = driver.FindElement(By.XPath("//*[@id='assessmentDiv']/table[1]/tbody"));
                    IList <IWebElement> Assessmentrow  = Assessmentable.FindElements(By.TagName("tr"));
                    IList <IWebElement> Assessmentid;
                    foreach (IWebElement Assessment in Assessmentrow)
                    {
                        Assessmentid = Assessment.FindElements(By.TagName("td"));
                        if (Assessmentid.Count != 0 && !Assessment.Text.Contains("MillLevy:"))
                        {
                            string Assessmentresult = Assessmentid[0].Text + "~" + Assessmentid[1].Text + "~" + Assessmentid[2].Text;
                            gc.insert_date(orderNumber, Parcel_number, 776, Assessmentresult, 1, DateTime.Now);
                        }
                    }
                    string current1 = driver.CurrentWindowHandle;
                    driver.FindElement(By.XPath("//*[@id='dataDisplay']/div[1]/button")).Click();
                    Thread.Sleep(2000);
                    driver.SwitchTo().Window(driver.WindowHandles.Last());
                    gc.CreatePdf(orderNumber, Parcel_number, "Property giued", driver, "CO", "Boulder");
                    driver.Close();
                    driver.SwitchTo().Window(current1);
                    string check = "", AreaID = "", Title1 = "", ValueAmount = "", paymenttype = "", ValueTitle = "", Title2 = "", Taxes = "", TActual = "", TAssessed = "";
                    try
                    {
                        driver.FindElement(By.LinkText("Property Taxes")).Click();
                        Thread.Sleep(7000);
                        driver.SwitchTo().Window(driver.WindowHandles.Last());
                        gc.CreatePdf(orderNumber, Parcel_number, "Tax Click before", driver, "CO", "Boulder");
                        driver.FindElement(By.XPath("//*[@id='middle_left']/form/input[1]")).Click();
                        Thread.Sleep(2000);
                        gc.CreatePdf(orderNumber, Parcel_number, "Tax Click After", driver, "CO", "Boulder");
                    }
                    catch
                    { }
                    //try
                    //{
                    //    driver.Navigate().GoToUrl("https://treasurer.bouldercounty.org/treasurer/treasurerweb/account.jsp?account=" + Parcel_number + "");
                    //}
                    //catch { }


                    try
                    {
                        IWebElement currenttaxtable = driver.FindElement(By.Id("taxAccountSummary"));

                        IWebElement         IValue    = driver.FindElement(By.XPath("//*[@id='taxAccountValueSummary']/div/table/tbody"));
                        IList <IWebElement> IValueRow = IValue.FindElements(By.TagName("tr"));
                        IList <IWebElement> IValueTD;
                        foreach (IWebElement value in IValueRow)
                        {
                            IValueTD = value.FindElements(By.TagName("td"));
                            if (IValueTD.Count != 0 && value.Text != "")
                            {
                                if (IValueTD[1].Text.Trim() == "" && IValueTD[0].Text.Trim() != "" && IValueTD[2].Text.Trim() != "" && !IValueTD[0].Text.Contains("Area Id"))
                                {
                                    if (check != "" && check == "Area ID")
                                    {
                                        check        = "";
                                        ValueAmount += IValueTD[0].Text + "~" + IValueTD[2].Text + "~";
                                    }
                                    else
                                    {
                                        ValueTitle  += IValueTD[0].Text + "~";
                                        ValueAmount += IValueTD[2].Text + "~";
                                    }
                                }
                                if (IValueTD[1].Text.Trim() == "" && IValueTD[0].Text.Trim() != "" && IValueTD[2].Text.Trim() != "" && IValueTD[0].Text.Contains("Area Id"))
                                {
                                    ValueTitle += IValueTD[0].Text + "~" + IValueTD[2].Text + "~";
                                    check       = "Area ID";
                                }
                                if (IValueTD[0].Text.Trim() == "" && IValueTD[1].Text.Trim() != "" && IValueTD[2].Text.Trim() != "")
                                {
                                    Title1 = IValueTD[1].Text;
                                    Title2 = IValueTD[2].Text;
                                }
                                if (IValueTD[0].Text.Trim() != "" && IValueTD[1].Text.Trim() != "" && IValueTD[2].Text.Trim() != "")
                                {
                                    ValueTitle  += IValueTD[0].Text + "(" + Title1 + ")" + "~" + IValueTD[0].Text + "(" + Title2 + ")" + "~";
                                    ValueAmount += IValueTD[1].Text + "~" + IValueTD[2].Text + "~";
                                }
                            }
                        }

                        db.ExecuteQuery("update data_field_master set Data_Fields_Text='" + ValueTitle.Remove(ValueTitle.Length - 1, 1) + "' where Id = '" + 778 + "'");
                        gc.insert_date(orderNumber, Parcel_number, 778, ValueAmount.Remove(ValueAmount.Length - 1, 1), 1, DateTime.Now);
                    }
                    catch
                    { }

                    try
                    {
                        for (int i = 1; i < 3; i++)

                        {
                            IWebElement Inquirytable = driver.FindElement(By.Id("totals"));
                            IWebElement As_off       = driver.FindElement(By.Id("paymentDate"));
                            As_of = As_off.GetAttribute("value");
                            if (i == 1)
                            {
                                paymenttype = driver.FindElement(By.XPath("//*[@id='inquiryForm']/table/tbody/tr[2]/td[2]/label[1]")).Text;
                                driver.FindElement(By.Id("paymentTypeFirst")).Click();
                            }
                            else
                            {
                                paymenttype = driver.FindElement(By.XPath("//*[@id='inquiryForm']/table/tbody/tr[2]/td[2]/label[2]")).Text;
                                if (paymenttype == "Full")
                                {
                                    driver.FindElement(By.Id("paymentTypeFull")).Click();
                                }
                                if (paymenttype == "Second")
                                {
                                    driver.FindElement(By.Id("paymentTypeSecond")).Click();
                                }
                            }
                            Total_Due = GlobalClass.After(Inquirytable.Text, "Total Due").Trim();
                            string cuttenttaxresult1 = As_of + "~" + paymenttype + "~" + Total_Due + "~" + Tax_Authority;
                            gc.insert_date(orderNumber, Parcel_number, 782, cuttenttaxresult1, 1, DateTime.Now);
                        }
                    }
                    catch { }
                    try
                    {
                        driver.FindElement(By.LinkText("Mill Levy Breakdown")).Click();
                        Thread.Sleep(3000);
                        gc.CreatePdf(orderNumber, Parcel_number, "Tax Billed", driver, "CO", "Boulder");
                        string TaxBillingrate = driver.FindElement(By.XPath("//*[@id='middle']/h2")).Text;
                        TaxTime = DateTime.Now.ToString("HH:mm:ss");
                        IWebElement         Taxaccounttable = driver.FindElement(By.XPath("//*[@id='middle']/table[3]/tbody"));
                        IList <IWebElement> Taxaccountrow   = Taxaccounttable.FindElements(By.TagName("tr"));
                        IList <IWebElement> Taxaccountid;
                        foreach (IWebElement Taxaccount in Taxaccountrow)
                        {
                            Taxaccountid = Taxaccount.FindElements(By.TagName("td"));
                            if (Taxaccountid.Count != 0 && !Taxaccount.Text.Contains("* Credit Levy"))
                            {
                                string Taxaccountresult = Taxaccountid[0].Text + "~" + Taxaccountid[1].Text + "~" + Taxaccountid[2].Text + "~" + Taxaccountid[3].Text + "~" + TaxBillingrate;
                                gc.insert_date(orderNumber, Parcel_number, 783, Taxaccountresult, 1, DateTime.Now);
                            }
                        }
                        IWebElement         propertycodetable = driver.FindElement(By.XPath("//*[@id='middle']/table[4]/tbody"));
                        IList <IWebElement> propertycoderow   = propertycodetable.FindElements(By.TagName("tr"));
                        IList <IWebElement> propertycodeid;
                        foreach (IWebElement propertycode in propertycoderow)
                        {
                            propertycodeid = propertycode.FindElements(By.TagName("td"));
                            if (propertycodeid.Count != 0 && !propertycode.Text.Contains("Property Code"))
                            {
                                string propertycoderesult = propertycodeid[0].Text + "~" + propertycodeid[1].Text + "~" + propertycodeid[2].Text + "~" + propertycodeid[3].Text;
                                gc.insert_date(orderNumber, Parcel_number, 857, propertycoderesult, 1, DateTime.Now);
                            }
                        }
                    }
                    catch
                    { }
                    driver.FindElement(By.LinkText("Transaction Detail")).Click();
                    Thread.Sleep(2000);
                    gc.CreatePdf(orderNumber, Parcel_number, "Tax Account Summary", driver, "CO", "Boulder");
                    IWebElement         TaxSummaryTable         = driver.FindElement(By.XPath("//*[@id='middle']/table[1]/tbody"));
                    IList <IWebElement> Taxsummaryrow           = TaxSummaryTable.FindElements(By.TagName("tr"));
                    IList <IWebElement> TaxSummaryid;
                    foreach (IWebElement Taxsummary in Taxsummaryrow)
                    {
                        TaxSummaryid = Taxsummary.FindElements(By.TagName("td"));
                        if (TaxSummaryid.Count != 0)
                        {
                            string TaxSummarydetail = TaxSummaryid[0].Text + "~" + TaxSummaryid[1].Text + "~" + TaxSummaryid[2].Text + "~" + TaxSummaryid[3].Text + "~" + TaxSummaryid[4].Text + "~" + TaxSummaryid[5].Text + "~" + TaxSummaryid[6].Text + "~" + TaxSummaryid[7].Text;
                            gc.insert_date(orderNumber, Parcel_number, 786, TaxSummarydetail, 1, DateTime.Now);
                        }
                    }
                    IWebElement         TransactionDetailstable = driver.FindElement(By.XPath("//*[@id='middle']/table[2]/tbody"));
                    IList <IWebElement> Transactiondetailrow    = TransactionDetailstable.FindElements(By.TagName("tr"));
                    IList <IWebElement> Transactiondetailid;
                    foreach (IWebElement Transaction in Transactiondetailrow)
                    {
                        Transactiondetailid = Transaction.FindElements(By.TagName("td"));
                        if (Transactiondetailid.Count != 1)
                        {
                            string Transactionresult = Transactiondetailid[0].Text + "~" + Transactiondetailid[1].Text + "~" + Transactiondetailid[2].Text + "~" + Transactiondetailid[3].Text + "~" + Transactiondetailid[4].Text;
                            gc.insert_date(orderNumber, Parcel_number, 787, Transactionresult, 1, DateTime.Now);
                        }
                    }

                    try
                    {
                        //Account Balance pdf
                        string geturl = driver.Url;
                        try
                        {
                            var chromeOptions      = new ChromeOptions();
                            var chDriver           = new ChromeDriver(chromeOptions);
                            IJavaScriptExecutor js = (IJavaScriptExecutor)chDriver;
                            chDriver.Navigate().GoToUrl(geturl);
                            chDriver.FindElement(By.XPath("//*[@id='middle_left']/form/input[1]")).Click();
                            chDriver.FindElement(By.LinkText("Account Balance")).Click();
                            Thread.Sleep(2000);
                            chDriver.FindElement(By.LinkText("Account Balance")).Click();
                            Thread.Sleep(8000);
                            gc.CreatePdf(orderNumber, Parcel_number, "Account Balance", chDriver, "CO", "Boulder");

                            //Statement Of Taxes Due
                            chDriver.Navigate().GoToUrl(geturl);
                            Thread.Sleep(2000);
                            chDriver.FindElement(By.LinkText("Statement Of Taxes Due")).Click();
                            Thread.Sleep(2000);
                            chDriver.FindElement(By.LinkText("Statement of Taxes Due")).Click();
                            Thread.Sleep(2000);
                            gc.CreatePdf(orderNumber, Parcel_number, "Statement of Taxes Due", chDriver, "CO", "Boulder");
                            //Summary of Taxes Due
                            chDriver.Navigate().GoToUrl(geturl);
                            Thread.Sleep(2000);
                            chDriver.FindElement(By.LinkText("Summary of Taxes Due")).Click();
                            Thread.Sleep(2000);
                            chDriver.FindElement(By.LinkText("Summary of Taxes Due")).Click();
                            Thread.Sleep(2000);
                            gc.CreatePdf(orderNumber, Parcel_number, "Summary of Taxes Due", chDriver, "CO", "Boulder");
                            chDriver.Quit();
                        }
                        catch
                        {
                        }
                    }
                    catch
                    {
                    }
                    string tableassess = "";
                    try
                    {
                        var chromeOptions     = new ChromeOptions();
                        var downloadDirectory = ConfigurationManager.AppSettings["AutoPdf"];
                        chromeOptions.AddUserProfilePreference("download.default_directory", downloadDirectory);
                        chromeOptions.AddUserProfilePreference("download.prompt_for_download", false);
                        chromeOptions.AddUserProfilePreference("disable-popup-blocking", "true");
                        chromeOptions.AddUserProfilePreference("plugins.always_open_pdf_externally", true);
                        var driver1 = new ChromeDriver(chromeOptions);
                        driver1.Navigate().GoToUrl(driver.Url);
                        string fileName = "";
                        driver1.FindElement(By.XPath("//*[@id='middle_left']/form/input[1]")).Click();
                        for (int j = 1; j < 4; j++)
                        {
                            IWebElement Receipttable = driver1.FindElement(By.XPath("//*[@id='receiptHistory']/a[" + j + "]"));
                            string      BillTax2     = Receipttable.GetAttribute("href");
                            fileName = gc.Between(BillTax2, "taxreceipt/", "?id=").Replace("-", "_");
                            Receipttable.Click();
                            Thread.Sleep(3000);
                            gc.AutoDownloadFile(orderNumber, parcelNumber, "Boulder", "CO", fileName);
                            string    FilePath = gc.filePath(orderNumber, parcelNumber) + fileName;
                            PdfReader reader;
                            string    pdfData;
                            reader = new PdfReader(FilePath);
                            String textFromPage = PdfTextExtractor.GetTextFromPage(reader, 1);
                            System.Diagnostics.Debug.WriteLine("" + textFromPage);
                            string pdftext = textFromPage;
                            try
                            {
                                tableassess = gc.Between(pdftext, "Receipt Number", "Situs Address").Trim();
                                string[] tableArray = tableassess.Split('\n');
                                for (int i = 0; i < 1; i++)
                                {
                                    int      count1   = tableArray.Length;
                                    string   a1       = tableArray[i].Replace(" ", "~");
                                    string[] rowarray = a1.Split('~');
                                    int      tdcount  = rowarray.Length;
                                    if (tdcount < 7)
                                    {
                                        string datepdf = rowarray[0] + "~" + rowarray[2] + "" + rowarray[3] + " " + rowarray[4] + "~" + " " + "~" + rowarray[5];
                                        gc.insert_date(orderNumber, Parcel_number, 889, datepdf, 1, DateTime.Now);
                                    }
                                    if (tdcount > 6)
                                    {
                                        string datepdf = rowarray[0] + "~" + rowarray[2] + "" + rowarray[3] + " " + rowarray[4] + "~" + rowarray[5] + " " + rowarray[6] + " " + rowarray[7] + "~" + rowarray[8];
                                        gc.insert_date(orderNumber, Parcel_number, 889, datepdf, 1, DateTime.Now);
                                    }
                                }
                            }
                            catch { }
                            try
                            {
                                tableassess = gc.Between(pdftext, "Account:", "TransNo:").Trim();
                                string[] tableArray = tableassess.Split('\n');
                                for (int i = 0; i < 2; i++)
                                {
                                    int      count1   = tableArray.Length;
                                    string   a1       = tableArray[i].Replace(" ", "~");
                                    string[] rowarray = a1.Split('~');
                                    int      tdcount  = rowarray.Length;
                                    if (tdcount < 7)
                                    {
                                        string datepdf = rowarray[0] + "~" + rowarray[2] + "" + rowarray[3] + " " + rowarray[4] + "~" + " " + "~" + rowarray[5];
                                        gc.insert_date(orderNumber, Parcel_number, 889, datepdf, 1, DateTime.Now);
                                    }
                                    if (tdcount > 6)
                                    {
                                        string datepdf = rowarray[0] + "~" + rowarray[2] + "" + rowarray[3] + " " + rowarray[4] + "~" + rowarray[5] + " " + rowarray[6] + " " + rowarray[7] + "~" + rowarray[8];
                                        gc.insert_date(orderNumber, Parcel_number, 889, datepdf, 1, DateTime.Now);
                                    }
                                }
                            }
                            catch { }
                        }

                        driver1.Quit();
                    }
                    catch (Exception ex) { driver.Quit(); }
                    TaxTime     = DateTime.Now.ToString("HH:mm:ss");
                    LastEndTime = DateTime.Now.ToString("HH:mm:ss");
                    gc.insert_TakenTime(orderNumber, "CO", "Boulder", StartTime, AssessmentTime, TaxTime, CitytaxTime, LastEndTime);
                    driver.Quit();

                    gc.mergpdf(orderNumber, "CO", "Boulder");
                    return("Data Inserted Successfully");
                }
                catch (Exception ex)
                {
                    driver.Quit();
                    GlobalClass.LogError(ex, orderNumber);
                    throw ex;
                }
            }
        }
        public string FTP_MSDesoto(string streetNo, string direction, string streetName, string streetType, string unitNumber, string parcelNumber, string ownerName, string searchType, string orderNumber)
        {
            string StartTime = "", AssessmentTime = "", TaxTime = "", CitytaxTime = "", LastEndTime = "";

            GlobalClass.global_orderNo             = orderNumber;
            HttpContext.Current.Session["orderNo"] = orderNumber;
            GlobalClass.global_parcelNo            = parcelNumber;
            var driverService = PhantomJSDriverService.CreateDefaultService();

            driverService.HideCommandPromptWindow = true;
            //driver = new PhantomJSDriver();
            //driver = new ChromeDriver();
            using (driver = new PhantomJSDriver()) //ChromeDriver
            {
                try
                {
                    StartTime = DateTime.Now.ToString("HH:mm:ss");
                    driver.Navigate().GoToUrl("http://cs.datasysmgt.com/tax?state=MS&county=17");
                    Thread.Sleep(2000);
                    if (searchType == "titleflex")
                    {
                        string Address = "";
                        if (direction != "")
                        {
                            Address = streetNo + " " + direction + " " + streetName + " " + streetType + " " + unitNumber;
                        }
                        else
                        {
                            Address = streetNo + " " + streetName + " " + streetType + " " + unitNumber;
                        }
                        gc.TitleFlexSearch(orderNumber, "", "", Address.Trim(), "MS", "DeSoto");
                        if ((HttpContext.Current.Session["TitleFlex_Search"] != null && HttpContext.Current.Session["TitleFlex_Search"].ToString() == "Yes"))
                        {
                            driver.Quit();
                            return("MultiParcel");
                        }
                        else if (HttpContext.Current.Session["titleparcel"].ToString() == "")
                        {
                            HttpContext.Current.Session["DesotoMS_NoRecord"] = "Yes";
                            driver.Quit();
                            return("No Data Found");
                        }
                        parcelNumber = HttpContext.Current.Session["titleparcel"].ToString();
                        searchType   = "parcel";
                    }
                    if (searchType == "address")
                    {
                        driver.FindElement(By.Id("taxweb_grid-search-field-street-number-field")).SendKeys(streetNo);
                        string Add1 = streetName + " " + streetType;
                        driver.FindElement(By.Id("taxweb_grid-search-field-street-name-field")).SendKeys(Add1.Trim());
                        //gc.CreatePdf_WOP(orderNumber, "Address search", driver, "MS", "DeSoto");
                        gc.CreatePdf_WOP(orderNumber, "Address search", driver, "MS", "DeSoto");
                        driver.FindElement(By.Id("ext-gen9")).SendKeys(Keys.Enter);
                        Thread.Sleep(9000);
                        gc.CreatePdf_WOP(orderNumber, "Address search1", driver, "MS", "DeSoto");
                        //gc.CreatePdf_WOP(orderNumber, "Address search1", driver, "MS", "DeSoto");
                        try
                        {
                            IWebElement INorecord = driver.FindElement(By.Id("ext-gen18"));
                            if (INorecord.Text.Contains("no records"))
                            {
                                HttpContext.Current.Session["DesotoMS_NoRecord"] = "Yes";
                                driver.Quit();
                                return("No Data Found");
                            }
                        }
                        catch { }
                        // gc.CreatePdf_WOP(orderNumber, "Address search Result", driver, "MS", "DeSoto");
                        try
                        {
                            string multi = GlobalClass.After(driver.FindElement(By.Id("ext-comp-1008")).Text, "of").Trim();
                            string strAddress = "", strparcel = "", strOwner = "";
                            if (Convert.ToInt32(multi) <= 25)
                            {
                                IWebElement         tbmulti = driver.FindElement(By.Id("ext-gen16"));
                                IList <IWebElement> TBmulti = tbmulti.FindElements(By.TagName("table"));
                                IList <IWebElement> TRmulti;
                                IList <IWebElement> TDmulti;
                                foreach (IWebElement row in TBmulti)
                                {
                                    TDmulti = row.FindElements(By.TagName("td"));
                                    if (TDmulti.Count != 0 && TDmulti[0].Text.Trim() != "")
                                    {
                                        strAddress = TDmulti[3].Text;
                                        strparcel  = TDmulti[1].Text;
                                        strOwner   = TDmulti[0].Text;

                                        string multiDetails = strAddress + "~" + strOwner;
                                        gc.insert_date(orderNumber, strparcel, 1351, multiDetails, 1, DateTime.Now);
                                    }
                                }
                                gc.CreatePdf_WOP(orderNumber, "Multi Address search Result", driver, "MS", "DeSoto");
                                HttpContext.Current.Session["multiparcel_DesotoMS"] = "Yes";
                                driver.Quit();
                                gc.mergpdf(orderNumber, "MS", "DeSoto");
                                return("MultiParcel");
                            }

                            if (Convert.ToInt32(multi) > 25)
                            {
                                HttpContext.Current.Session["multiparcel_DesotoMS_Multicount"] = "Maximum";
                                driver.Quit();
                                return("Maximum");
                            }
                        }
                        catch { }
                    }
                    if (searchType == "parcel")
                    {
                        parcelNumber = parcelNumber.Replace(" ", "").Trim();
                        string Town  = parcelNumber.Substring(0, 1);
                        string Rin   = parcelNumber.Substring(1, 2);
                        string Area  = parcelNumber.Substring(3, 1);
                        string Sct   = parcelNumber.Substring(4, 2);
                        string Sub   = parcelNumber.Substring(6, 2);
                        string Qtr   = parcelNumber.Substring(8, 1);
                        string Lot   = parcelNumber.Substring(9, 5);
                        string Split = parcelNumber.Substring(14, 2);
                        //gc.CreatePdf_WOP(orderNumber, "Parcel Before search Result1", driver, "MS", "DeSoto");
                        IWebElement element1 = driver.FindElement(By.Id("taxweb_grid-search-field-parcel-field1"));
                        element1.Clear();
                        driver.FindElement(By.Id("taxweb_grid-search-field-parcel-field1")).Click();
                        driver.FindElement(By.Id("taxweb_grid-search-field-parcel-field1")).SendKeys(Town);

                        IWebElement element2 = driver.FindElement(By.Id("taxweb_grid-search-field-parcel-field2"));
                        element2.Clear();
                        driver.FindElement(By.Id("taxweb_grid-search-field-parcel-field2")).Click();
                        driver.FindElement(By.Id("taxweb_grid-search-field-parcel-field2")).SendKeys(Rin);

                        IWebElement element3 = driver.FindElement(By.Id("taxweb_grid-search-field-parcel-field3"));
                        element3.Clear();
                        driver.FindElement(By.Id("taxweb_grid-search-field-parcel-field3")).Click();
                        driver.FindElement(By.Id("taxweb_grid-search-field-parcel-field3")).SendKeys(Area);

                        IWebElement element4 = driver.FindElement(By.Id("taxweb_grid-search-field-parcel-field4"));
                        element4.Clear();
                        driver.FindElement(By.Id("taxweb_grid-search-field-parcel-field4")).Click();
                        driver.FindElement(By.Id("taxweb_grid-search-field-parcel-field4")).SendKeys(Sct);

                        IWebElement element5 = driver.FindElement(By.Id("taxweb_grid-search-field-parcel-field5"));
                        element5.Clear();
                        driver.FindElement(By.Id("taxweb_grid-search-field-parcel-field5")).Click();
                        driver.FindElement(By.Id("taxweb_grid-search-field-parcel-field5")).SendKeys(Sub);

                        IWebElement element6 = driver.FindElement(By.Id("taxweb_grid-search-field-parcel-field6"));
                        element6.Clear();
                        driver.FindElement(By.Id("taxweb_grid-search-field-parcel-field6")).Click();
                        driver.FindElement(By.Id("taxweb_grid-search-field-parcel-field6")).SendKeys(Qtr);

                        IWebElement element7 = driver.FindElement(By.Id("taxweb_grid-search-field-parcel-field7"));
                        element7.Clear();
                        driver.FindElement(By.Id("taxweb_grid-search-field-parcel-field7")).Click();
                        driver.FindElement(By.Id("taxweb_grid-search-field-parcel-field7")).SendKeys(Lot);

                        IWebElement element8 = driver.FindElement(By.Id("taxweb_grid-search-field-parcel-field8"));
                        element8.Clear();
                        driver.FindElement(By.Id("taxweb_grid-search-field-parcel-field8")).Click();
                        driver.FindElement(By.Id("taxweb_grid-search-field-parcel-field8")).SendKeys(Split);

                        gc.CreatePdf_WOP(orderNumber, "Parcel search After Result1", driver, "MS", "DeSoto");
                        //driver.FindElement(By.XPath("//*[@id='ext-gen9']")).SendKeys(Keys.Enter);
                        // Thread.Sleep(9000);
                        try
                        {
                            IWebElement         IAddressSearch1 = driver.FindElement(By.XPath("//*[@id='ext-gen9']"));
                            IJavaScriptExecutor js1             = driver as IJavaScriptExecutor;
                            js1.ExecuteScript("arguments[0].click();", IAddressSearch1);
                            Thread.Sleep(9000);
                        }
                        catch { }
                        try
                        {
                            IWebElement INorecord = driver.FindElement(By.Id("ext-gen18"));
                            if (INorecord.Text.Contains("no records"))
                            {
                                HttpContext.Current.Session["DesotoMS_NoRecord"] = "Yes";
                                driver.Quit();
                                return("No Data Found");
                            }
                        }
                        catch { }
                    }
                    if (searchType == "ownername")
                    {
                        driver.FindElement(By.Id("taxweb_grid-search-field-last-name-field")).SendKeys(ownerName);
                        gc.CreatePdf_WOP(orderNumber, "Owner search1", driver, "MS", "DeSoto");
                        driver.FindElement(By.Id("ext-gen9")).SendKeys(Keys.Enter);
                        Thread.Sleep(9000);
                        gc.CreatePdf_WOP(orderNumber, "Owner search Result1", driver, "MS", "DeSoto");
                        try
                        {
                            IWebElement INorecord = driver.FindElement(By.Id("ext-gen18"));
                            if (INorecord.Text.Contains("no records"))
                            {
                                HttpContext.Current.Session["DesotoMS_NoRecord"] = "Yes";
                                driver.Quit();
                                return("No Data Found");
                            }
                        }
                        catch { }
                        try
                        {
                            string multi = GlobalClass.After(driver.FindElement(By.Id("ext-comp-1008")).Text, "of").Trim();
                            string strAddress = "", strparcel = "", strOwner = "";
                            if (Convert.ToInt32(multi) <= 25)
                            {
                                IWebElement         tbmulti = driver.FindElement(By.Id("ext-gen16"));
                                IList <IWebElement> TBmulti = tbmulti.FindElements(By.TagName("table"));
                                IList <IWebElement> TRmulti;
                                IList <IWebElement> TDmulti;
                                foreach (IWebElement row in TBmulti)
                                {
                                    TDmulti = row.FindElements(By.TagName("td"));
                                    if (TDmulti.Count != 0 && TDmulti[0].Text.Trim() != "")
                                    {
                                        strAddress = TDmulti[3].Text;
                                        strparcel  = TDmulti[1].Text;
                                        strOwner   = TDmulti[0].Text;

                                        string multiDetails = strAddress + "~" + strOwner;
                                        gc.insert_date(orderNumber, strparcel, 1351, multiDetails, 1, DateTime.Now);
                                    }
                                }
                                gc.CreatePdf_WOP(orderNumber, "Multi Owner search Result", driver, "MS", "DeSoto");
                                HttpContext.Current.Session["multiparcel_DesotoMS"] = "Yes";
                                driver.Quit();
                                gc.mergpdf(orderNumber, "MS", "DeSoto");
                                return("MultiParcel");
                            }

                            if (Convert.ToInt32(multi) > 25)
                            {
                                HttpContext.Current.Session["multiparcel_DesotoMS_Multicount"] = "Maximum";
                                driver.Quit();
                                return("Maximum");
                            }
                        }
                        catch { }
                    }

                    try
                    {
                        driver.FindElement(By.XPath("//*[@id='ext-gen18']/div/table/tbody/tr/td[1]/div/a")).Click();
                        Thread.Sleep(2000);
                    }
                    catch { }

                    string      strownerName = "", strPropertyAddress = "", County = "", TaxYear = "", Receipt = "", LegalDescription = "", YearBuilt = "";
                    IWebElement IProperty = driver.FindElement(By.XPath("//*[@id='ext-gen58']/table[1]/tbody"));
                    TaxYear            = gc.Between(IProperty.Text, "Tax Year:", "County Name:").Trim();
                    County             = gc.Between(IProperty.Text, "County Name:", "\r\nName:").Trim();
                    strPropertyAddress = gc.Between(IProperty.Text, "Address:", "City:").Trim();
                    IWebElement IParcel = driver.FindElement(By.XPath("//*[@id='ext-gen58']/table[2]"));
                    parcelNumber     = gc.Between(IParcel.Text, "Twn", "Receipt #:").Replace("Rng", "").Replace("Area", "").Replace("Sct", "").Replace("Sub", "").Replace("Qtr", "").Replace("Lot#", "").Replace("Split", "").Trim();
                    Receipt          = gc.Between(IParcel.Text, "Receipt #:", "Land Owner Name:").Trim();
                    strownerName     = GlobalClass.After(IParcel.Text, "Land Owner Name:\r\n").Trim();
                    LegalDescription = driver.FindElement(By.XPath("//*[@id='ext-gen58']/table[3]/tbody/tr/td/p[1]")).Text;
                    try
                    {
                        YearBuilt = driver.FindElement(By.XPath("//*[@id='ext-gen58']/table[11]/tbody/tr[2]/td[4]")).Text;
                    }
                    catch { }
                    try
                    {
                        YearBuilt = driver.FindElement(By.XPath("//*[@id='ext-gen58']/table[13]/tbody/tr[2]/td[4]")).Text;
                    }
                    catch { }
                    string PropertyDetails = strPropertyAddress + "~" + strownerName + "~" + County + "~" + TaxYear + "~" + Receipt + "~" + LegalDescription + "~" + YearBuilt;
                    gc.insert_date(orderNumber, parcelNumber, 1355, PropertyDetails, 1, DateTime.Now);

                    string              TaxDistrict = "", Assessment = "", Millage = "", GrossTax = "", HomeStead = "";
                    IWebElement         IAssessment    = driver.FindElement(By.XPath("//*[@id='ext-gen58']/table[4]/tbody/tr/td/table"));
                    IList <IWebElement> IAssessmentRow = IAssessment.FindElements(By.TagName("tr"));
                    IList <IWebElement> IAssessmentTD;
                    foreach (IWebElement Assess in IAssessmentRow)
                    {
                        IAssessmentTD = Assess.FindElements(By.TagName("td"));
                        if (IAssessmentTD.Count != 0 && !Assess.Text.Contains("District:") && (Assess.Text.Contains("True:") || Assess.Text.Contains("Assessed:")))
                        {
                            TaxDistrict += IAssessmentTD[0].Text + " ";
                            Assessment  += IAssessmentTD[2].Text + "~" + IAssessmentTD[3].Text + "~" + IAssessmentTD[4].Text + "~";
                            if (Assess.Text.Contains("Assessed:"))
                            {
                                Millage  = IAssessmentTD[5].Text;
                                GrossTax = IAssessmentTD[6].Text;
                            }
                        }
                        if (IAssessmentTD.Count != 0 && !Assess.Text.Contains("District:") && Assess.Text.Contains("Homestead Credit Amount:"))
                        {
                            HomeStead = IAssessmentTD[5].Text;
                        }
                    }

                    string AssessmentDetails = TaxDistrict.Trim() + "~" + Assessment.Trim() + Millage.Trim() + "~" + GrossTax.Trim() + "~" + HomeStead.Trim();
                    gc.insert_date(orderNumber, parcelNumber, 1356, AssessmentDetails, 1, DateTime.Now);
                    //Tax Information Details
                    string              Entity = "", Mills = "", TaxAmount = "";
                    IWebElement         ITaxEntity    = driver.FindElement(By.XPath("//*[@id='ext-gen58']/table[5]/tbody/tr[1]/td[1]/table"));
                    IList <IWebElement> ITaxEntityRow = ITaxEntity.FindElements(By.TagName("tr"));
                    IList <IWebElement> ITaxEntityTD;
                    foreach (IWebElement TaxEntity in ITaxEntityRow)
                    {
                        ITaxEntityTD = TaxEntity.FindElements(By.TagName("td"));
                        if (ITaxEntityTD.Count != 0 && !TaxEntity.Text.Contains("Tax Entities:") && TaxEntity.Text.Trim() != "")
                        {
                            Entity    = ITaxEntityTD[0].Text.Replace(":", "");
                            Mills     = ITaxEntityTD[1].Text;
                            TaxAmount = ITaxEntityTD[3].Text;

                            string entityDetails = Entity + "~" + Mills + "~" + TaxAmount;
                            gc.insert_date(orderNumber, parcelNumber, 1357, entityDetails, 1, DateTime.Now);
                        }
                    }
                    string              SpecialTaxes = "", SpecialAmount = "";
                    IWebElement         ISpecialAssessment    = driver.FindElement(By.XPath("//*[@id='ext-gen58']/table[5]/tbody/tr[1]/td[2]/table"));
                    IList <IWebElement> ISpecialAssessmentRow = ISpecialAssessment.FindElements(By.TagName("tr"));
                    IList <IWebElement> ISpecialAssessmentTD;
                    foreach (IWebElement SpecialAssessment in ISpecialAssessmentRow)
                    {
                        ISpecialAssessmentTD = SpecialAssessment.FindElements(By.TagName("td"));
                        if (ISpecialAssessmentTD.Count != 0 && SpecialAssessment.Text.Trim() != "" && !SpecialAssessment.Text.Contains("Tax Amount"))
                        {
                            SpecialTaxes  = ISpecialAssessmentTD[0].Text.Replace(":", "");
                            SpecialAmount = ISpecialAssessmentTD[1].Text;

                            string specialDetails = SpecialTaxes + "~" + SpecialAmount;
                            gc.insert_date(orderNumber, parcelNumber, 1358, specialDetails, 1, DateTime.Now);
                        }
                    }

                    string              TaxInterestHead = "", TaxInterestValue = "";
                    IWebElement         ITaxInterest    = driver.FindElement(By.XPath("//*[@id='ext-gen58']/table[5]/tbody/tr[2]/td/table"));
                    IList <IWebElement> ITaxInterestRow = ITaxInterest.FindElements(By.TagName("tr"));
                    IList <IWebElement> ITaxInterestTD;
                    foreach (IWebElement Interest in ITaxInterestRow)
                    {
                        ITaxInterestTD = Interest.FindElements(By.TagName("td"));
                        if (ITaxInterestTD.Count != 0)
                        {
                            TaxInterestHead  += ITaxInterestTD[0].Text.Replace(":", "") + "~";
                            TaxInterestValue += ITaxInterestTD[1].Text + "~";
                        }
                    }

                    IWebElement         ITaxDue    = driver.FindElement(By.XPath("//*[@id='ext-gen58']/table[5]/tbody/tr[3]/td/table"));
                    IList <IWebElement> ITaxDueRow = ITaxDue.FindElements(By.TagName("tr"));
                    IList <IWebElement> ITaxDueTD;
                    foreach (IWebElement due in ITaxDueRow)
                    {
                        ITaxDueTD = due.FindElements(By.TagName("td"));
                        if (ITaxDueTD.Count != 0 && !due.Text.Contains("------------") && due.Text != "")
                        {
                            TaxInterestHead  += ITaxDueTD[1].Text.Replace(":", "") + "~";
                            TaxInterestValue += ITaxDueTD[2].Text + "~";
                        }
                    }
                    IWebElement ITotalAmount   = driver.FindElement(By.XPath("//*[@id='ext-gen58']/table[6]"));
                    string      TotalAmount    = GlobalClass.After(ITotalAmount.Text, "Total Amount:").Replace("CITY TAXES INCLUDED", "").Trim();
                    string      delinquentdate = "";
                    try
                    {
                        IWebElement Idelinquentdate = driver.FindElement(By.XPath("//*[@id='ext-gen58']/table[9]/tbody/tr/td[1]"));
                        delinquentdate = GlobalClass.After(Idelinquentdate.Text, "delinquent on").Trim();
                    }
                    catch { }
                    try
                    {
                        IWebElement Idelinquentdate = driver.FindElement(By.XPath("//*[@id='ext-gen58']/table[11]/tbody/tr/td[1]/p"));
                        delinquentdate = GlobalClass.After(Idelinquentdate.Text, "delinquent on").Trim();
                    }
                    catch { }
                    string taxesdue = "";
                    try
                    {
                        IWebElement taxddue = driver.FindElement(By.XPath("//*[@id='ext-gen58']/table[8]/tbody/tr/td[1]"));
                        if (taxddue.Text.Contains("TAXES DUE:"))
                        {
                            taxesdue = driver.FindElement(By.XPath("//*[@id='ext-gen58']/table[8]/tbody/tr/td[2]")).Text;
                        }
                    }
                    catch { }
                    db.ExecuteQuery("update data_field_master set Data_Fields_Text='" + TaxInterestHead + "Total Amount~Delinquent Date~Taxes Due" + "' where Id = '" + 1359 + "'");
                    gc.insert_date(orderNumber, parcelNumber, 1359, TaxInterestValue + TotalAmount + "~" + delinquentdate + "~" + taxesdue, 1, DateTime.Now);

                    //Tax Payments Details
                    try
                    {
                        string      Paymentdate = "", Taxes = "", Special = "", Interestpay = "", Fees = "", Total = "", Paidby = "";
                        IWebElement ITotalDue     = driver.FindElement(By.XPath("//*[@id='ext-gen58']/table[8]"));
                        string      TotalDue      = ITotalDue.Text.Replace("TAXES DUE:", "").Trim();
                        string[]    totalduesplit = TotalDue.Split('\r');
                        Paymentdate = totalduesplit[0];
                        Taxes       = totalduesplit[1];
                        Special     = totalduesplit[2];
                        Interestpay = totalduesplit[3];
                        Fees        = totalduesplit[4];
                        Total       = totalduesplit[5];
                        Paidby      = totalduesplit[6];
                        string TaxpaymentDetails = Paymentdate + "~" + Taxes + "~" + Special + "~" + Interestpay + "~" + Fees + "~" + Total + "~" + Paidby;
                        gc.insert_date(orderNumber, parcelNumber, 1587, TaxpaymentDetails, 1, DateTime.Now);
                    }
                    catch { }
                    try
                    {
                        var chDriver = new ChromeDriver();
                        chDriver.Navigate().GoToUrl(driver.Url);
                        Thread.Sleep(4000);
                        //gc.CreatePdf(orderNumber, parcelNumber, "Half pdf1", chDriver, "MS", "DeSoto");
                        //Parcel id work
                        parcelNumber = parcelNumber.Replace(" ", "").Trim();
                        string      Town     = parcelNumber.Substring(0, 1);
                        string      Rin      = parcelNumber.Substring(1, 2);
                        string      Area     = parcelNumber.Substring(3, 1);
                        string      Sct      = parcelNumber.Substring(4, 2);
                        string      Sub      = parcelNumber.Substring(6, 2);
                        string      Qtr      = parcelNumber.Substring(8, 1);
                        string      Lot      = parcelNumber.Substring(9, 5);
                        string      Split    = parcelNumber.Substring(14, 2);
                        IWebElement element1 = chDriver.FindElement(By.Id("taxweb_grid-search-field-parcel-field1"));
                        element1.Clear();
                        chDriver.FindElement(By.Id("taxweb_grid-search-field-parcel-field1")).Click();
                        chDriver.FindElement(By.Id("taxweb_grid-search-field-parcel-field1")).SendKeys(Town);

                        IWebElement element2 = chDriver.FindElement(By.Id("taxweb_grid-search-field-parcel-field2"));
                        element2.Clear();
                        chDriver.FindElement(By.Id("taxweb_grid-search-field-parcel-field2")).Click();
                        chDriver.FindElement(By.Id("taxweb_grid-search-field-parcel-field2")).SendKeys(Rin);

                        IWebElement element3 = chDriver.FindElement(By.Id("taxweb_grid-search-field-parcel-field3"));
                        element3.Clear();
                        chDriver.FindElement(By.Id("taxweb_grid-search-field-parcel-field3")).Click();
                        chDriver.FindElement(By.Id("taxweb_grid-search-field-parcel-field3")).SendKeys(Area);

                        IWebElement element4 = chDriver.FindElement(By.Id("taxweb_grid-search-field-parcel-field4"));
                        element4.Clear();
                        chDriver.FindElement(By.Id("taxweb_grid-search-field-parcel-field4")).Click();
                        chDriver.FindElement(By.Id("taxweb_grid-search-field-parcel-field4")).SendKeys(Sct);

                        IWebElement element5 = chDriver.FindElement(By.Id("taxweb_grid-search-field-parcel-field5"));
                        element5.Clear();
                        chDriver.FindElement(By.Id("taxweb_grid-search-field-parcel-field5")).Click();
                        chDriver.FindElement(By.Id("taxweb_grid-search-field-parcel-field5")).SendKeys(Sub);

                        IWebElement element6 = chDriver.FindElement(By.Id("taxweb_grid-search-field-parcel-field6"));
                        element6.Clear();
                        chDriver.FindElement(By.Id("taxweb_grid-search-field-parcel-field6")).Click();
                        chDriver.FindElement(By.Id("taxweb_grid-search-field-parcel-field6")).SendKeys(Qtr);

                        IWebElement element7 = chDriver.FindElement(By.Id("taxweb_grid-search-field-parcel-field7"));
                        element7.Clear();
                        chDriver.FindElement(By.Id("taxweb_grid-search-field-parcel-field7")).Click();
                        chDriver.FindElement(By.Id("taxweb_grid-search-field-parcel-field7")).SendKeys(Lot);

                        IWebElement element8 = chDriver.FindElement(By.Id("taxweb_grid-search-field-parcel-field8"));
                        element8.Clear();
                        chDriver.FindElement(By.Id("taxweb_grid-search-field-parcel-field8")).Click();
                        chDriver.FindElement(By.Id("taxweb_grid-search-field-parcel-field8")).SendKeys(Split);
                        gc.CreatePdf(orderNumber, parcelNumber, "Half data view pdf1", chDriver, "MS", "DeSoto");

                        chDriver.FindElement(By.XPath("//*[@id='ext-gen9']")).SendKeys(Keys.Enter);
                        Thread.Sleep(9000);
                        gc.CreatePdf(orderNumber, parcelNumber, "Tax Details Half data view pdf1", chDriver, "MS", "DeSoto");
                        ByVisibleElement(chDriver.FindElement(By.XPath("//*[@id='ext-gen58']/table[5]/tbody/tr[1]/td[2]/table/tbody/tr[1]/td[2]/p/u/b")), chDriver);
                        gc.CreatePdf(orderNumber, parcelNumber, "Tax Details search Result1", chDriver, "MS", "DeSoto");
                        try
                        {
                            ByVisibleElement(chDriver.FindElement(By.XPath("//*[@id='ext-gen58']/table[13]/tbody/tr[1]/td[4]/b")), chDriver);
                            gc.CreatePdf(orderNumber, parcelNumber, "Tax Details search Result2", chDriver, "MS", "DeSoto");
                        }
                        catch { }
                        chDriver.Quit();
                    }
                    catch { }
                    TaxTime     = DateTime.Now.ToString("HH:mm:ss");
                    LastEndTime = DateTime.Now.ToString("HH:mm:ss");
                    gc.insert_TakenTime(orderNumber, "MS", "DeSoto", StartTime, AssessmentTime, TaxTime, CitytaxTime, LastEndTime);

                    driver.Quit();
                    gc.mergpdf(orderNumber, "MS", "DeSoto");
                    return("Data Inserted Successfully");
                }

                catch (Exception ex)
                {
                    driver.Quit();
                    throw ex;
                }
            }
        }
        public string FTP_WaltonGA(string address, string parcelNumber, string searchType, string ownername, string orderNumber, string directParcel)
        {
            GlobalClass.global_orderNo             = orderNumber;
            HttpContext.Current.Session["orderNo"] = orderNumber;
            GlobalClass.global_parcelNo            = parcelNumber;

            string StartTime = "", AssessmentTime = "", TaxTime = "", CitytaxTime = "", LastEndTime = "";

            var driverService = PhantomJSDriverService.CreateDefaultService();

            driverService.HideCommandPromptWindow = true;
            //  driver = new PhantomJSDriver();
            //driver = new ChromeDriver();
            using (driver = new PhantomJSDriver())
            {
                try
                {
                    StartTime = DateTime.Now.ToString("HH:mm:ss");

                    driver.Navigate().GoToUrl("https://qpublic.schneidercorp.com/Application.aspx?App=WaltonCountyGA&Layer=Parcels&PageType=Search");
                    Thread.Sleep(4000);
                    try
                    {
                        driver.FindElement(By.LinkText("Agree")).Click();
                        Thread.Sleep(1000);
                    }
                    catch { }
                    if (searchType == "titleflex")
                    {
                        string titleaddress = address;
                        gc.TitleFlexSearch(orderNumber, "", "", titleaddress, "GA", "Walton");
                        if ((HttpContext.Current.Session["TitleFlex_Search"] != null && HttpContext.Current.Session["TitleFlex_Search"].ToString() == "Yes"))
                        {
                            driver.Quit();
                            return("MultiParcel");
                        }
                        else if (HttpContext.Current.Session["titleparcel"].ToString() == "")
                        {
                            HttpContext.Current.Session["Nodata_WaltonGA"] = "Yes";
                            driver.Quit();
                            return("No Data Found");
                        }
                        parcelNumber = HttpContext.Current.Session["titleparcel"].ToString();
                        searchType   = "parcel";
                    }

                    if (searchType == "address")
                    {
                        driver.FindElement(By.Id("ctlBodyPane_ctl01_ctl01_txtAddress")).SendKeys(address);
                        gc.CreatePdf_WOP(orderNumber, "Address search", driver, "GA", "Walton");
                        driver.FindElement(By.Id("ctlBodyPane_ctl01_ctl01_btnSearch")).SendKeys(Keys.Enter);
                        Thread.Sleep(4000);
                        gc.CreatePdf_WOP(orderNumber, "Address Search result", driver, "GA", "Walton");
                        try
                        {
                            int                 Max = 0;
                            string              strowner = "", strAddress = "", strCity = "";
                            IWebElement         multiaddress = driver.FindElement(By.XPath("//*[@id='ContentPlaceHolder1_gvSearchResults']/tbody"));
                            IList <IWebElement> multiRow     = multiaddress.FindElements(By.TagName("tr"));
                            IList <IWebElement> multiTD;
                            foreach (IWebElement multi in multiRow)
                            {
                                multiTD = multi.FindElements(By.TagName("td"));
                                if (multiTD.Count != 0 && multiRow.Count < 3)
                                {
                                    IWebElement IsearchClick = driver.FindElement(By.XPath("//*[@id='ContentPlaceHolder1_gvSearchResults']/tbody/tr[2]/td[1]/a"));
                                    IsearchClick.Click();
                                    Thread.Sleep(2000);
                                    Max++;
                                    break;
                                }
                                if (multiTD.Count != 0 && multiRow.Count > 25)
                                {
                                    HttpContext.Current.Session["multiparcel_WaltonGA_Maximum"] = "Maximum";
                                    driver.Quit();
                                    return("Maximum");
                                }
                                if (multiTD.Count != 0 && multiRow.Count > 2 && multiRow.Count <= 25)
                                {
                                    strowner   = multiTD[1].Text;
                                    strAddress = multiTD[2].Text;

                                    string multidetails = strowner + "~" + strAddress;
                                    gc.insert_date(orderNumber, multiTD[0].Text, 1431, multidetails, 1, DateTime.Now);
                                    Max++;
                                }
                            }
                            if (Max > 1 && Max < 26)
                            {
                                HttpContext.Current.Session["multiparcel_WaltonGA"] = "Yes";
                                driver.Quit();
                                return("MultiParcel");
                            }
                            if (Max == 0)
                            {
                                HttpContext.Current.Session["Nodata_WaltonGA"] = "Yes";
                                driver.Quit();
                                return("No Data Found");
                            }
                        }
                        catch { }
                    }

                    //else if (searchType == "ownername")
                    //{
                    //    try
                    //    {
                    //        driver.FindElement(By.Id("ContentPlaceHolder1_btnDisclaimerAccept")).Click();
                    //        Thread.Sleep(1000);
                    //    }
                    //    catch { }
                    //    try
                    //    {
                    //        driver.FindElement(By.LinkText("Owner")).Click();
                    //        Thread.Sleep(1000);
                    //    }
                    //    catch { }
                    //    string Lastname = "", Firstname = "";
                    //    try
                    //    {
                    //        var ownersplit = ownername.Trim().Split(' ');
                    //        Lastname = ownersplit[0];
                    //        Firstname = ownersplit[1];
                    //        driver.FindElement(By.Id("ContentPlaceHolder1_Owner_tbOwnerLastName")).SendKeys(Lastname);
                    //        driver.FindElement(By.Id("ContentPlaceHolder1_Owner_tbOwnerFirstName")).SendKeys(Firstname);
                    //        ownername = Lastname + " " + Firstname;
                    //    }
                    //    catch { }

                    //    gc.CreatePdf_WOP(orderNumber, "OwnerName Search", driver, "GA", "Walton");
                    //    driver.FindElement(By.Id("ContentPlaceHolder1_Owner_btnSearchOwner")).SendKeys(Keys.Enter);
                    //    Thread.Sleep(3000);
                    //    gc.CreatePdf_WOP(orderNumber, "OwnerName Search Results", driver, "GA", "Walton");
                    //    try
                    //    {
                    //        int Max = 0;
                    //        string strowner = "", strAddress = "", strCity = "";
                    //        IWebElement multiaddress = driver.FindElement(By.XPath("//*[@id='ContentPlaceHolder1_gvSearchResults']/tbody"));
                    //        IList<IWebElement> multiRow = multiaddress.FindElements(By.TagName("tr"));
                    //        IList<IWebElement> multiTD;
                    //        foreach (IWebElement multi in multiRow)
                    //        {
                    //            multiTD = multi.FindElements(By.TagName("td"));
                    //            if (multiTD.Count != 0 && multiRow.Count < 2)
                    //            {
                    //                IWebElement IsearchClick = driver.FindElement(By.XPath("//*[@id='ContentPlaceHolder1_gvSearchResults']/tbody/tr[2]/td[1]/a"));
                    //                IsearchClick.Click();
                    //                Thread.Sleep(2000);
                    //                break;
                    //            }
                    //            if (multiTD.Count != 0 && multiRow.Count > 25)
                    //            {
                    //                HttpContext.Current.Session["multiparcel_WayneOH_Maximum"] = "Maximum";
                    //                driver.Quit();
                    //                return "Maximum";
                    //            }
                    //            if (multiTD.Count != 0 && multiRow.Count > 2 && multiRow.Count <= 25)
                    //            {
                    //                strowner = multiTD[1].Text;
                    //                strAddress = multiTD[2].Text;

                    //                string multidetails = strowner + "~" + strAddress;
                    //                gc.insert_date(orderNumber, multiTD[0].Text, 1431, multidetails, 1, DateTime.Now);
                    //                Max++;
                    //            }
                    //        }
                    //        if (Max > 1 && Max < 26)
                    //        {
                    //            HttpContext.Current.Session["multiparcel_WayneOH"] = "Yes";
                    //            driver.Quit();
                    //            return "MultiParcel";
                    //        }
                    //        if (Max == 0)
                    //        {
                    //            HttpContext.Current.Session["Zero_Wayne"] = "Zero";
                    //            driver.Quit();
                    //            return "Zero";
                    //        }
                    //    }
                    //    catch { }
                    //}


                    else if (searchType == "parcel")
                    {
                        driver.FindElement(By.Id("ctlBodyPane_ctl02_ctl01_txtParcelID")).SendKeys(parcelNumber);
                        gc.CreatePdf(orderNumber, parcelNumber, "parcel search", driver, "GA", "Walton");
                        driver.FindElement(By.Id("ctlBodyPane_ctl02_ctl01_btnSearch")).SendKeys(Keys.Enter);
                        Thread.Sleep(3000);
                        // gc.CreatePdf(orderNumber, parcelNumber, "parcel search Result", driver, "GA", "Walton");
                        // driver.FindElement(By.XPath("//*[@id='ContentPlaceHolder1_gvSearchResults']/tbody/tr[2]/td[1]/a")).SendKeys(Keys.Enter);
                        // Thread.Sleep(3000);
                    }

                    try
                    {
                        IWebElement Inodata = driver.FindElement(By.Id("ctlBodyPane_noDataList_pnlNoResults"));
                        if (Inodata.Text.Contains("No results match"))
                        {
                            HttpContext.Current.Session["Nodata_WaltonGA"] = "Yes";
                            driver.Quit();
                            return("No Data Found");
                        }
                    }
                    catch { }
                    //property details
                    gc.CreatePdf(orderNumber, parcelNumber, "Property Details", driver, "GA", "Walton");
                    int                 i = 0, j = 0;
                    string              Loc_Addrs = "", Leg_Desp = "", Class = "", Tax_Dist = "", Milagerate = "", Acres = "", Neighberwood = "";
                    string              Homstd_Exmp = "", Zoning = "", Owner1 = "", Owner2 = "", Mailing_Address = "", Overall_OwnMailAdd = "";
                    string              Mailing_Address1 = "", Mailing_Address2 = "", yblt = "", Year_Built = "", Year1 = "", Year2 = "";
                    IWebElement         tbmulti11 = driver.FindElement(By.XPath("//*[@id='ctlBodyPane_ctl00_ctl01_dvNonPrebillMH']/table/tbody"));
                    IList <IWebElement> TRmulti11 = tbmulti11.FindElements(By.TagName("tr"));
                    IList <IWebElement> TDmulti11;
                    foreach (IWebElement row in TRmulti11)
                    {
                        TDmulti11 = row.FindElements(By.TagName("td"));
                        if (TDmulti11.Count != 0)
                        {
                            if (i == 0)
                            {
                                parcelNumber = TDmulti11[1].Text;
                            }
                            if (i == 1)
                            {
                                Loc_Addrs = TDmulti11[1].Text;
                            }
                            if (i == 3)
                            {
                                Leg_Desp = TDmulti11[1].Text;
                            }
                            if (i == 5)
                            {
                                Class = TDmulti11[1].Text;
                            }
                            if (i == 8)
                            {
                                Tax_Dist = TDmulti11[1].Text;
                            }
                            if (i == 9)
                            {
                                Milagerate = TDmulti11[1].Text;
                            }
                            if (i == 10)
                            {
                                Acres = TDmulti11[1].Text;
                            }
                            if (i == 11)
                            {
                                Neighberwood = TDmulti11[1].Text;
                            }
                            if (i == 12)
                            {
                                Homstd_Exmp = TDmulti11[1].Text;
                            }
                            i++;
                        }
                    }

                    try
                    {
                        Zoning             = driver.FindElement(By.Id("ctlBodyPane_ctl00_ctl01_lblZoning")).Text;
                        Owner1             = driver.FindElement(By.Id("ctlBodyPane_ctl01_ctl01_lnkOwnerName_lblSearch")).Text;
                        Owner2             = driver.FindElement(By.Id("ctlBodyPane_ctl01_ctl01_lblAddress")).Text;
                        Mailing_Address    = driver.FindElement(By.XPath("//*[@id='ctlBodyPane_ctl01_ctl01_lblCityStateZip']")).Text;
                        Overall_OwnMailAdd = Owner1 + " " + Owner2 + " " + Mailing_Address;
                    }
                    catch
                    { }

                    try
                    {
                        Owner1             = driver.FindElement(By.XPath("//*[@id='ctlBodyPane_ctl01_ctl01_lnkOwnerName_lblSearch']")).Text;
                        Mailing_Address1   = driver.FindElement(By.XPath("//*[@id='ctlBodyPane_ctl01_ctl01_lblAddress']")).Text;
                        Mailing_Address2   = driver.FindElement(By.XPath("//*[@id='ctlBodyPane_ctl01_ctl01_lblCityStateZip']")).Text;
                        Overall_OwnMailAdd = Owner1 + " " + Mailing_Address1 + " " + Mailing_Address2;
                    }
                    catch
                    { }

                    try
                    {
                        IWebElement         Yeartb = driver.FindElement(By.XPath("//*[@id='ctlBodyPane_ctl04_mSection']/div/table/tbody"));
                        IList <IWebElement> YearTR = Yeartb.FindElements(By.TagName("tr"));
                        IList <IWebElement> YearTD;

                        foreach (IWebElement Tax4 in YearTR)
                        {
                            YearTD = Tax4.FindElements(By.TagName("td"));
                            if (YearTD.Count != 0)
                            {
                                yblt = YearTD[0].Text;
                                if (yblt.Contains("Year Built"))
                                {
                                    Year_Built = YearTD[1].Text;
                                }
                            }
                        }
                    }
                    catch
                    { }

                    string property = Loc_Addrs + "~" + Leg_Desp + "~" + Class + "~" + Zoning + "~" + Tax_Dist + "~" + Milagerate + "~" + Acres + "~" + Neighberwood + "~" + Homstd_Exmp + "~" + Overall_OwnMailAdd + "~" + Year_Built;
                    gc.CreatePdf(orderNumber, parcelNumber, "Property Details", driver, "GA", "Walton");
                    gc.insert_date(orderNumber, parcelNumber, 1452, property, 1, DateTime.Now);

                    //Assessment Details
                    IWebElement         AssmThTb = driver.FindElement(By.XPath("//*[@id='ctlBodyPane_ctl12_ctl01_grdValuation']/thead"));
                    IList <IWebElement> AssmThTr = AssmThTb.FindElements(By.TagName("tr"));
                    IList <IWebElement> AssmTh;

                    foreach (IWebElement Assm in AssmThTr)
                    {
                        AssmTh = Assm.FindElements(By.TagName("th"));
                        if (AssmTh.Count != 0)
                        {
                            Year1 = AssmTh[2].Text;
                            Year2 = AssmTh[3].Text;
                        }
                    }

                    IWebElement         AssmTb = driver.FindElement(By.XPath("//*[@id='ctlBodyPane_ctl12_ctl01_grdValuation']/tbody"));
                    IList <IWebElement> AssmTr = AssmTb.FindElements(By.TagName("tr"));
                    IList <IWebElement> AssmTd;

                    List <string> Previous_Value    = new List <string>();
                    List <string> Land_Value        = new List <string>();
                    List <string> Improvement_Value = new List <string>();
                    List <string> Accessory_Value   = new List <string>();
                    List <string> Current_Value     = new List <string>();

                    foreach (IWebElement Assmrow in AssmTr)
                    {
                        AssmTd = Assmrow.FindElements(By.TagName("td"));

                        if (AssmTd.Count != 0)
                        {
                            if (j == 0)
                            {
                                Previous_Value.Add(AssmTd[2].Text);
                                Previous_Value.Add(AssmTd[3].Text);
                            }
                            else if (j == 1)
                            {
                                Land_Value.Add(AssmTd[2].Text);
                                Land_Value.Add(AssmTd[3].Text);
                            }
                            else if (j == 2)
                            {
                                Improvement_Value.Add(AssmTd[2].Text);
                                Improvement_Value.Add(AssmTd[3].Text);
                            }
                            else if (j == 3)
                            {
                                Accessory_Value.Add(AssmTd[2].Text);
                                Accessory_Value.Add(AssmTd[3].Text);
                            }
                            else if (j == 4)
                            {
                                Current_Value.Add(AssmTd[2].Text);
                                Current_Value.Add(AssmTd[3].Text);
                            }

                            j++;
                        }
                    }

                    string Assemnt_Details1 = Year1 + "~" + Previous_Value[0] + "~" + Land_Value[0] + "~" + Improvement_Value[0] + "~" + Accessory_Value[0] + "~" + Current_Value[0];
                    string Assemnt_Details2 = Year2 + "~" + Previous_Value[1] + "~" + Land_Value[1] + "~" + Improvement_Value[1] + "~" + Accessory_Value[1] + "~" + Current_Value[1];
                    gc.insert_date(orderNumber, parcelNumber, 1453, Assemnt_Details1, 1, DateTime.Now);
                    gc.insert_date(orderNumber, parcelNumber, 1453, Assemnt_Details2, 1, DateTime.Now);
                    AssessmentTime = DateTime.Now.ToString("HH:mm:ss");



                    // Tax Information
                    driver.Navigate().GoToUrl("https://waltoncountyga.governmentwindow.com/tax.html");
                    Thread.Sleep(4000);
                    string parcel1 = "", parcel2 = "";
                    parcel1 = parcelNumber.Substring(0, 5);

                    parcel2 = parcelNumber.Substring(5, 3);

                    parcelNumber = parcel1 + "-00000-" + parcel2 + "-000";

                    driver.FindElement(By.XPath("//*[@id='taxesSearchForm']/div[2]/div[2]/div/div/input[1]")).SendKeys(parcelNumber);
                    gc.CreatePdf(orderNumber, parcelNumber, "Tax Search", driver, "GA", "Walton");
                    driver.FindElement(By.XPath("//*[@id='taxesSearchForm']/div[2]/div[2]/div/div/input[2]")).Click();
                    Thread.Sleep(1000);
                    gc.CreatePdf(orderNumber, parcelNumber, "Tax Search Result", driver, "GA", "Walton");

                    IWebElement         taxinfo      = driver.FindElement(By.XPath("//*[@id='tbl_tax_results']"));
                    IList <IWebElement> TRtaxinfo    = taxinfo.FindElements(By.TagName("tr"));
                    IList <IWebElement> THtaxinfo    = taxinfo.FindElements(By.TagName("th"));
                    IList <IWebElement> TDtaxinfo;
                    foreach (IWebElement row in TRtaxinfo)
                    {
                        TDtaxinfo = row.FindElements(By.TagName("td"));

                        if (TDtaxinfo.Count != 0 && !row.Text.Contains("Property Address"))
                        {
                            string Taxhistorydetails = TDtaxinfo[0].Text + "~" + TDtaxinfo[1].Text + "~" + TDtaxinfo[2].Text + "~" + TDtaxinfo[3].Text + "~" + TDtaxinfo[4].Text + "~" + TDtaxinfo[5].Text + "~" + TDtaxinfo[6].Text + "~" + TDtaxinfo[7].Text + "~" + TDtaxinfo[8].Text;
                            gc.insert_date(orderNumber, parcelNumber, 1463, Taxhistorydetails, 1, DateTime.Now);
                        }
                    }

                    int                 Tax_Year     = DateTime.Now.Year;
                    List <string>       bililist     = new List <string>();
                    int                 I            = 0;
                    IWebElement         taxhistory   = driver.FindElement(By.XPath("//*[@id='tbl_tax_results']"));
                    IList <IWebElement> TRtaxhistory = taxhistory.FindElements(By.TagName("tr"));
                    IList <IWebElement> THtaxhistory = taxhistory.FindElements(By.TagName("th"));
                    IList <IWebElement> TDtaxhistory;
                    foreach (IWebElement row in TRtaxhistory)
                    {
                        TDtaxhistory = row.FindElements(By.TagName("td"));

                        if (TDtaxhistory.Count != 0 && !row.Text.Contains("Property Address") && bililist.Count < 4)
                        {
                            IWebElement Billlink = TDtaxhistory[1].FindElement(By.TagName("a"));
                            string      Billhref = Billlink.GetAttribute("href");
                            bililist.Add(Billhref);
                            Thread.Sleep(1000);
                            I++;
                        }
                        if (bililist.Count == 3)
                        {
                            break;
                        }
                    }
                    foreach (string Link in bililist)
                    {
                        // tax Bill Details
                        string taxyear = "";
                        driver.Navigate().GoToUrl(Link);
                        try
                        {
                            taxyear = driver.FindElement(By.XPath("//*[@id='tax_pay_bill']/div/div[2]/div[1]/div/h3/u")).Text;
                            taxyear = taxyear.Replace("Property Tax Statement", "").Trim();
                        }
                        catch { }
                        IWebElement         taxbill   = driver.FindElement(By.Id("tbl_tax_bill_total"));
                        IList <IWebElement> TRtaxbill = taxbill.FindElements(By.TagName("tr"));
                        IList <IWebElement> THtaxbill = taxbill.FindElements(By.TagName("th"));
                        IList <IWebElement> TDtaxbill;
                        foreach (IWebElement row in TRtaxbill)
                        {
                            TDtaxbill = row.FindElements(By.TagName("td"));

                            if (TDtaxbill.Count != 0 && !row.Text.Contains("Prior Payment"))
                            {
                                string TaxBilldetails = taxyear + "~" + TDtaxbill[0].Text + "~" + TDtaxbill[1].Text + "~" + TDtaxbill[2].Text + "~" + TDtaxbill[3].Text + "~" + TDtaxbill[4].Text + "~" + TDtaxbill[5].Text.Replace("Pay", "").Trim();
                                gc.insert_date(orderNumber, parcelNumber, 1461, TaxBilldetails, 1, DateTime.Now);
                            }
                        }

                        // Tax Breakdown Details Table:

                        IWebElement         taxbreakdown   = driver.FindElement(By.XPath("//*[@id='tbl_tax_positions']"));
                        IList <IWebElement> TRtaxbreakdown = taxbreakdown.FindElements(By.TagName("tr"));
                        IList <IWebElement> THtaxbreakdown = taxbreakdown.FindElements(By.TagName("th"));
                        IList <IWebElement> TDtaxbreakdown;
                        foreach (IWebElement row in TRtaxbreakdown)
                        {
                            TDtaxbreakdown = row.FindElements(By.TagName("td"));

                            if (TDtaxbreakdown.Count != 0 && !row.Text.Contains("Adjusted FMV") && !row.Text.Contains("TOTALS"))
                            {
                                string TaxBreakDowndetails = taxyear + "~" + TDtaxbreakdown[0].Text + "~" + TDtaxbreakdown[1].Text + "~" + TDtaxbreakdown[2].Text + "~" + TDtaxbreakdown[3].Text + "~" + TDtaxbreakdown[4].Text + "~" + TDtaxbreakdown[5].Text + "~" + TDtaxbreakdown[6].Text + "~" + TDtaxbreakdown[7].Text + "~" + TDtaxbreakdown[8].Text;
                                gc.insert_date(orderNumber, parcelNumber, 1462, TaxBreakDowndetails, 1, DateTime.Now);
                            }
                            if (TDtaxbreakdown.Count != 0 && !row.Text.Contains("Adjusted FMV") && row.Text.Contains("TOTALS"))
                            {
                                string TaxBreakDowndetails = taxyear + "~" + "" + "~" + "" + "~" + "" + "~" + "" + "~" + TDtaxbreakdown[0].Text + "~" + TDtaxbreakdown[1].Text + "~" + TDtaxbreakdown[2].Text + "~" + TDtaxbreakdown[3].Text + "~" + TDtaxbreakdown[4].Text;
                                gc.insert_date(orderNumber, parcelNumber, 1462, TaxBreakDowndetails, 1, DateTime.Now);
                            }
                        }

                        // Tax Information Details

                        string Taxstatus = driver.FindElement(By.XPath("//*[@id='tax_pay_bill']/div/div[3]/div[3]/table/tbody")).Text;
                        string Taxpayer = "", Mapcode = "", Description = "", Location = "", Billno = "", TaxAuth = "";
                        Taxpayer    = gc.Between(Taxstatus, "Tax Payer:", "Map Code:");
                        Mapcode     = gc.Between(Taxstatus, "Map Code:", "Description:").Trim();
                        Description = gc.Between(Taxstatus, "Description:", "Location:").Trim();
                        Location    = gc.Between(Taxstatus, "Location:", "Bill No:").Trim();
                        Billno      = GlobalClass.After(Taxstatus, "Bill No:").Replace("\r\n", "").Trim();
                        TaxAuth     = driver.FindElement(By.XPath("//*[@id='tax_pay_bill']/div/div[3]/div[1]/div")).Text.Replace("Tax Commissioner", "").Replace("\r\n", " ").Trim();

                        IWebElement         taxstatus = driver.FindElement(By.Id("tbl_tax_bill_item"));
                        IList <IWebElement> TRtaxstatus = taxstatus.FindElements(By.TagName("tr"));
                        IList <IWebElement> THtaxstatus = taxstatus.FindElements(By.TagName("th"));
                        IList <IWebElement> TDtaxstatus;
                        foreach (IWebElement row in TRtaxstatus)
                        {
                            TDtaxstatus = row.FindElements(By.TagName("td"));

                            if (TDtaxstatus.Count != 0 && !row.Text.Contains("Fair Market Value") && !row.Text.Contains("Billing Date"))
                            {
                                string Taxstatusdetails = taxyear + "~" + Taxpayer + "~" + Mapcode + "~" + Description + "~" + Location + "~" + Billno + "~" + TDtaxstatus[0].Text + "~" + TDtaxstatus[1].Text + "~" + TDtaxstatus[2].Text + "~" + TDtaxstatus[3].Text + "~" + TDtaxstatus[4].Text + "~" + TDtaxstatus[5].Text + "~" + TaxAuth;
                                gc.insert_date(orderNumber, parcelNumber, 1466, Taxstatusdetails, 1, DateTime.Now);
                            }
                        }

                        // Tax payment status Details
                        string valuetype = "", Amount = "";
                        valuetype += "Tax Year" + "~";
                        Amount    += Tax_Year + "~";
                        IWebElement         Assessmentdetails = driver.FindElement(By.XPath("//*[@id='tax_pay_bill']/div/div[5]/div[2]/table/tbody"));
                        IList <IWebElement> TRAssessmentdetails = Assessmentdetails.FindElements(By.TagName("tr"));
                        IList <IWebElement> THAssessmentdetails = Assessmentdetails.FindElements(By.TagName("th"));
                        IList <IWebElement> TDAssessmentdetails;
                        foreach (IWebElement row in TRAssessmentdetails)
                        {
                            TDAssessmentdetails = row.FindElements(By.TagName("td"));
                            if (row.Text.Trim() != "" && TDAssessmentdetails.Count == 2)
                            {
                                valuetype += TDAssessmentdetails[0].Text + "~";
                                Amount    += TDAssessmentdetails[1].Text + "~";
                            }
                        }


                        db.ExecuteQuery("update data_field_master set Data_Fields_Text='" + valuetype.Remove(valuetype.Length - 1, 1) + "' where Id = '" + 1467 + "'");
                        gc.insert_date(orderNumber, parcelNumber, 1467, Amount.Remove(Amount.Length - 1, 1), 1, DateTime.Now);
                        //Tax_Year--;
                    }
                    TaxTime = DateTime.Now.ToString("HH:mm:ss");

                    LastEndTime = DateTime.Now.ToString("HH:mm:ss");
                    gc.insert_TakenTime(orderNumber, "GA", "Walton", StartTime, AssessmentTime, TaxTime, CitytaxTime, LastEndTime);

                    driver.Quit();
                    gc.mergpdf(orderNumber, "GA", "Walton");
                    return("Data Inserted Successfully");
                }

                catch (Exception ex)
                {
                    driver.Quit();
                    throw ex;
                }
            }
        }
Beispiel #24
0
        public string FTP_AZPima(string streetNo, string direction, string streetName, string streetType, string unitNumber, string parcelNumber, string ownerName, string searchType, string orderNumber)
        {
            string StartTime = "", AssessmentTime = "", TaxTime = "", CitytaxTime = "", LastEndTime = "";

            GlobalClass.global_orderNo             = orderNumber;
            HttpContext.Current.Session["orderNo"] = orderNumber;
            GlobalClass.global_parcelNo            = parcelNumber;
            var driverService = PhantomJSDriverService.CreateDefaultService();

            driverService.HideCommandPromptWindow = true;
            //driver = new PhantomJSDriver();
            //driver = new ChromeDriver();
            using (driver = new ChromeDriver())
            {
                try
                {
                    StartTime = DateTime.Now.ToString("HH:mm:ss");
                    driver.Navigate().GoToUrl("http://www.asr.pima.gov/Home/ParcelSearch");
                    if (searchType == "titleflex")
                    {
                        gc.TitleFlexSearch(orderNumber, "", "", streetNo + " " + streetName, "AZ", "Pima");
                        if ((HttpContext.Current.Session["TitleFlex_Search"] != null && HttpContext.Current.Session["TitleFlex_Search"].ToString() == "Yes"))
                        {
                            driver.Quit();
                            return("MultiParcel");
                        }
                        else if (HttpContext.Current.Session["titleparcel"].ToString() == "")
                        {
                            HttpContext.Current.Session["AZPima_NoRecord"] = "Yes";
                            driver.Quit();
                            return("No Data Found");
                        }
                        parcelNumber = HttpContext.Current.Session["titleparcel"].ToString();
                        searchType   = "parcel";
                    }
                    if (direction != "")
                    {
                        if (direction.ToUpper() == "S")
                        {
                            direction = "3";
                        }
                        if (direction.ToUpper() == "N")
                        {
                            direction = "1";
                        }
                        if (direction.ToUpper() == "W")
                        {
                            direction = "4";
                        }
                        if (direction.ToUpper() == "E")
                        {
                            direction = "2";
                        }
                    }
                    if (searchType == "address")
                    {
                        //
                        try
                        {
                            driver.FindElement(By.XPath("/html/body/div[2]/div[3]/form/div[1]/div[4]/a")).Click();
                            Thread.Sleep(2000);
                        }
                        catch { }
                        try
                        {
                            //driver.FindElement(By.XPath("//*[@id='searchPills']/ul/li[3]/a")).Click();
                            //Thread.Sleep(2000);
                        }
                        catch { }
                        driver.FindElement(By.LinkText("Address")).Click();
                        Thread.Sleep(2000);
                        driver.FindElement(By.Id("address1")).SendKeys(streetNo);
                        driver.FindElement(By.Id("address2")).SendKeys(streetNo);
                        if (direction != "")
                        {
                            IWebElement   PropertyInformation       = driver.FindElement(By.Id("selectedDirection"));
                            SelectElement PropertyInformationSelect = new SelectElement(PropertyInformation);
                            PropertyInformationSelect.SelectByIndex(Convert.ToInt16(direction.Trim()));
                        }
                        if (streetType.ToUpper() == "AVE")
                        {
                            streetType = "AV";
                        }
                        if (streetType.ToUpper() == "TRL")
                        {
                            streetType = "TR";
                        }
                        if (streetType.ToUpper() == "TER")
                        {
                            streetType = "TE";
                        }
                        if (streetType.ToUpper() == "WAY")
                        {
                            streetType = "WY";
                        }
                        driver.FindElement(By.Id("strName")).SendKeys(streetName.Trim() + " " + streetType.Trim());
                        IWebElement         addressliclick = driver.FindElement(By.XPath("//*[@id='searchPills']/div/div[3]/form/div/div/div[3]"));
                        IList <IWebElement> addressclickli = addressliclick.FindElements(By.TagName("li"));
                        IList <IWebElement> addressclicktd;
                        foreach (IWebElement addressclick in addressclickli)
                        {
                            addressclicktd = addressclick.FindElements(By.TagName("a"));
                            if (addressclicktd.Count != 0)
                            {
                                addressclicktd[0].Click();
                                Thread.Sleep(2000);
                            }
                        }
                        //driver.FindElement(By.Id("strName")).Click();
                        gc.CreatePdf_WOP(orderNumber, "Address search", driver, "AZ", "Pima");
                        Thread.Sleep(8000);
                        try
                        {
                            IWebElement         clickfirst = driver.FindElement(By.XPath("//*[@id='searchPills']/div/div[3]/form/div/div/div[3]/button"));
                            IJavaScriptExecutor js12       = driver as IJavaScriptExecutor;
                            js12.ExecuteScript("arguments[0].click();", clickfirst);
                            //Thread.Sleep(9000);
                            Thread.Sleep(3000);
                        }
                        catch { }
                        try
                        {
                            driver.FindElement(By.XPath("//*[@id='searchPills']/div/div[3]/form/div/div/div[3]/button")).SendKeys(Keys.Enter);
                            Thread.Sleep(2000);
                        }
                        catch { }
                        //IWebElement INorecord = driver.FindElement(By.Id("ext-gen9"));
                        //if (INorecord.Text.Contains("no records"))
                        //{
                        //    HttpContext.Current.Session["multiparcel_DesotoMS_NoRecord"] = "Yes";
                        //}
                        //gc.CreatePdf_WOP(orderNumber, "Address search Result", driver, "AZ", "Pima");
                        //try
                        //{
                        //    string multi = GlobalClass.After(driver.FindElement(By.Id("ext-comp-1008")).Text, "of").Trim();
                        //    string strAddress = "", strparcel = "", strOwner = "";
                        //    if (Convert.ToInt32(multi) <= 25)
                        //    {
                        //        IWebElement tbmulti = driver.FindElement(By.Id("ext-gen16"));
                        //        IList<IWebElement> TBmulti = tbmulti.FindElements(By.TagName("table"));
                        //        IList<IWebElement> TRmulti;
                        //        IList<IWebElement> TDmulti;
                        //        foreach (IWebElement row in TBmulti)
                        //        {
                        //            TDmulti = row.FindElements(By.TagName("td"));
                        //            if (TDmulti.Count != 0 && TDmulti[0].Text.Trim() != "")
                        //            {
                        //                strAddress = TDmulti[3].Text;
                        //                strparcel = TDmulti[1].Text;
                        //                strOwner = TDmulti[0].Text;

                        //                string multiDetails = strAddress + "~" + strOwner;
                        //                gc.insert_date(orderNumber, strparcel, 1351, multiDetails, 1, DateTime.Now);
                        //            }
                        //        }
                        //        gc.CreatePdf_WOP(orderNumber, "Multi Address search Result", driver, "AZ", "Pima");
                        //        HttpContext.Current.Session["multiparcel_DesotoMS"] = "Yes";
                        //        driver.Quit();
                        //        gc.mergpdf(orderNumber, "AZ", "Pima");
                        //        return "MultiParcel";
                        //    }

                        //    if (Convert.ToInt32(multi) > 25)
                        //    {
                        //        HttpContext.Current.Session["multiparcel_DesotoMS_Multicount"] = "Maximum";
                        //        driver.Quit();
                        //        return "Maximum";
                        //    }
                        //}
                        //catch { }
                        try
                        {
                            IWebElement INorecord = driver.FindElement(By.XPath("//*[@id='searchPills']/div/div[3]/form/div/div/div[3]/label[2]"));
                            if (INorecord.Text.Contains("No information found"))
                            {
                                HttpContext.Current.Session["AZPima_NoRecord"] = "Yes";
                                driver.Quit();
                                return("No Data Found");
                            }
                        }
                        catch { }
                    }
                    if (searchType == "parcel")
                    {
                        parcelNumber = parcelNumber.Replace("-", "").Trim();
                        string parcel1 = parcelNumber.Substring(0, 3);
                        string parcel2 = parcelNumber.Substring(3, 2);
                        string parcel3 = parcelNumber.Substring(5, 4);
                        parcelNumber = parcel1 + "-" + parcel2 + "-" + parcel3;
                        driver.FindElement(By.Id("parcelInput")).SendKeys(parcelNumber);
                        gc.CreatePdf(orderNumber, parcelNumber, "Parcel search", driver, "AZ", "Pima");
                        //  /html/body/div[2]/div[1]/div[1]/div/div[1]/div/div[1]/button
                        driver.FindElement(By.XPath("/html/body/div[2]/div[3]/form/div[1]/div[1]/div/button")).SendKeys(Keys.Enter);
                        gc.CreatePdf(orderNumber, parcelNumber, "Parcel search Result", driver, "AZ", "Pima");
                    }
                    if (searchType == "ownername")
                    {
                        driver.FindElement(By.LinkText("Quick")).SendKeys(Keys.Enter);
                        IWebElement         IOwner    = driver.FindElement(By.XPath("/html/body/div[2]/div[1]/div[1]/div"));
                        IList <IWebElement> IOwnerRow = IOwner.FindElements(By.TagName("label"));
                        foreach (IWebElement owner in IOwnerRow)
                        {
                            if (owner.Text == "Property Owner")
                            {
                                owner.Click();
                                Thread.Sleep(3000);
                                break;
                            }
                        }
                        driver.FindElement(By.Id("taxPayerInput")).SendKeys(ownerName);
                        gc.CreatePdf_WOP(orderNumber, "Owner search", driver, "AZ", "Pima");
                        driver.FindElement(By.XPath("/html/body/div[2]/div[1]/div[1]/div/div[1]/div/div[2]/button")).SendKeys(Keys.Enter);
                        Thread.Sleep(3000);
                        gc.CreatePdf_WOP(orderNumber, "Owner search Result", driver, "AZ", "Pima");
                        try
                        {
                            IWebElement MultiCount = driver.FindElement(By.XPath("//*[@id='searchResultsModal']/div/div/div[1]"));
                            string      strCount   = gc.Between(MultiCount.Text, "(", ")").Trim();
                            if (Convert.ToInt32(strCount) <= 25)
                            {
                                IWebElement         IMultiOwner    = driver.FindElement(By.XPath("//*[@id='searchResultsModal']/div/div/div[2]/div[2]/table/tbody"));
                                IList <IWebElement> IMultiOwnerRow = IMultiOwner.FindElements(By.TagName("tr"));
                                IList <IWebElement> IMultiOwnerTD;
                                foreach (IWebElement multi in IMultiOwnerRow)
                                {
                                    IMultiOwnerTD = multi.FindElements(By.TagName("td"));
                                    if (IMultiOwnerTD.Count != 0)
                                    {
                                        string strParcel  = IMultiOwnerTD[0].Text;
                                        string strOwner   = IMultiOwnerTD[1].Text;
                                        string strAddress = IMultiOwnerTD[2].Text;

                                        string multiDetails = strAddress + "~" + strOwner;
                                        gc.insert_date(orderNumber, strParcel, 1366, multiDetails, 1, DateTime.Now);
                                    }
                                }
                                gc.CreatePdf_WOP(orderNumber, "Multi Address search Result", driver, "AZ", "Pima");
                                HttpContext.Current.Session["multiparcel_PimaAZ"] = "Yes";
                                driver.Quit();
                                gc.mergpdf(orderNumber, "AZ", "Pima");
                                return("MultiParcel");
                            }
                            if (Convert.ToInt32(strCount) > 25)
                            {
                                HttpContext.Current.Session["multiparcel_PimaAZ_Multicount"] = "Maximum";
                                driver.Quit();
                                return("Maximum");
                            }
                        }
                        catch { }
                    }

                    try
                    {
                        IWebElement INorecord = driver.FindElement(By.XPath("/html/body/div[2]/div[1]/div[1]/div/div[1]/div/div[1]/label[2]"));
                        if (INorecord.Text.Contains("No records found") || INorecord.Text.Contains("No information found"))
                        {
                            HttpContext.Current.Session["AZPima_NoRecord"] = "Yes";
                            driver.Quit();
                            return("No Data Found");
                        }
                    }
                    catch { }
                    try
                    {
                        IWebElement INoinform = driver.FindElement(By.XPath("/html/body/div[2]/div[1]/div[1]/div/div[1]/div/div[2]/label[2]"));
                        if (INoinform.Text.Contains("No records found") || INoinform.Text.Contains("No information found"))
                        {
                            HttpContext.Current.Session["AZPima_NoRecord"] = "Yes";
                            driver.Quit();
                            return("No Data Found");
                        }
                    }
                    catch { }
                    string TaxYear = "", TaxArea = "", PropertyAddress = "", strOwnerName = "", ProDescription = "", YearBuilt = "";
                    //Property Details
                    Thread.Sleep(5000);
                    IWebElement IParcelNo = driver.FindElement(By.XPath("/html/body/div[2]/div[1]/p"));
                    parcelNumber = gc.Between(IParcelNo.Text, "Parcel Number:", "Expand All +").Trim();
                    gc.CreatePdf(orderNumber, parcelNumber, "Parcel search Result", driver, "AZ", "Pima");
                    if (IParcelNo.Text.Contains("Expand All"))
                    {
                        // /html/body/div[2]/div[1]/p/span[1]
                        driver.FindElement(By.XPath("/html/body/div[2]/div[1]/p/span[1]")).Click();
                        Thread.Sleep(3000);
                    }
                    try
                    {
                        gc.CreatePdf(orderNumber, parcelNumber, "Property Details", driver, "AZ", "Pima");
                    }
                    catch { }
                    TaxYear = DateTime.Now.Year.ToString();
                    var year           = driver.FindElement(By.XPath("/html/body/div[2]/div[1]/div[1]/div/div[1]/div[1]/div[1]/table/tbody/tr[2]/td[2]/div/select"));
                    var selectElement1 = new SelectElement(year);
                    selectElement1.SelectByText(TaxYear);

                    //IWebElement Iyear = driver.FindElement(By.XPath("/html/body/div[2]/div[1]/div[1]/div/div[1]/div[1]/div[1]/table/tbody/tr[2]/td[2]/div/select"));
                    //SelectElement SYear = new SelectElement(Iyear);
                    //TaxYear = SYear.SelectedOption.Text;
                    TaxArea         = driver.FindElement(By.XPath("/html/body/div[2]/div[1]/div[1]/div/div[1]/div[1]/div[2]/table/tbody/tr[2]/td[2]/button")).Text;
                    PropertyAddress = GlobalClass.After(driver.FindElement(By.Id("PrclAddr")).Text, "Location").Replace("\r\n", "").Trim();
                    string              City         = "";
                    IWebElement         IFullAddress = driver.FindElement(By.XPath("//*[@id='PrclAddr']/table/tbody"));
                    IList <IWebElement> IFullRow     = IFullAddress.FindElements(By.TagName("tr"));
                    IList <IWebElement> IFullTD;
                    foreach (IWebElement full in IFullRow)
                    {
                        IFullTD = full.FindElements(By.TagName("td"));
                        if (IFullTD.Count != 0 && full.Text.Trim() != "" && IFullTD.Count == 4)
                        {
                            City = IFullTD[3].Text.Trim();
                        }
                    }
                    IWebElement         IOwnerName    = driver.FindElement(By.XPath("//*[@id='TaxpyrLegal']/table/tbody"));
                    IList <IWebElement> IOwnerNameRow = IOwnerName.FindElements(By.TagName("tr"));
                    IList <IWebElement> IOwnerNameTD;
                    foreach (IWebElement name in IOwnerNameRow)
                    {
                        IOwnerNameTD = name.FindElements(By.TagName("td"));
                        if (IOwnerNameTD.Count != 0)
                        {
                            strOwnerName   = IOwnerNameTD[0].Text.Replace("\r\n", " ");
                            ProDescription = IOwnerNameTD[1].Text.Replace("\r\n", " ");
                        }
                    }
                    //Valuation Details
                    IWebElement         IValuation    = driver.FindElement(By.XPath("//*[@id='ValuData']/table/tbody"));
                    IList <IWebElement> IValuationRow = IValuation.FindElements(By.TagName("tr"));
                    IList <IWebElement> IValuationTD;
                    foreach (IWebElement valuation in IValuationRow)
                    {
                        IValuationTD = valuation.FindElements(By.TagName("td"));
                        if (IValuationTD.Count != 0)
                        {
                            string ValYear          = IValuationTD[0].Text;
                            string ValPropertyClass = IValuationTD[1].Text;
                            string ValAssessRatio   = IValuationTD[2].Text;
                            string ValTotalFCV      = IValuationTD[5].Text;
                            string ValLimitedValue  = IValuationTD[6].Text;
                            string ValLimitedAssess = IValuationTD[7].Text;

                            string valuationDetails = ValYear + "~" + ValPropertyClass + "~" + ValAssessRatio + "~" + ValTotalFCV + "~" + ValLimitedValue + "~" + ValLimitedAssess;
                            gc.insert_date(orderNumber, parcelNumber, 1368, valuationDetails, 1, DateTime.Now);
                        }
                    }
                    //Year Built
                    IWebElement         IYearBuilt    = driver.FindElement(By.XPath("//*[@id='ResdChr']/table[1]/tbody"));
                    IList <IWebElement> IYearBuiltRow = IYearBuilt.FindElements(By.TagName("tr"));
                    IList <IWebElement> IYearBuiltTD;
                    foreach (IWebElement yearBuilt in IYearBuiltRow)
                    {
                        IYearBuiltTD = yearBuilt.FindElements(By.TagName("td"));
                        if (yearBuilt.Text.Contains("Effective Construction Year:"))
                        {
                            YearBuilt = IYearBuiltTD[1].Text;
                            break;
                        }
                    }

                    string propertyDetails = PropertyAddress + "~" + strOwnerName + "~" + ProDescription + "~" + TaxYear + "~" + TaxArea + "~" + YearBuilt;
                    gc.insert_date(orderNumber, parcelNumber, 1367, propertyDetails, 1, DateTime.Now);

                    AssessmentTime = DateTime.Now.ToString("HH:mm:ss");
                    //Tax Authority
                    //driver.Navigate().GoToUrl("http://www.to.pima.gov/about/contactus");
                    //IWebElement ITaxAuthor = driver.FindElement(By.XPath("//*[@id='rt-mainbody']/div/div/div/table[1]"));
                    string strTaxAuthor = "";
                    //gc.CreatePdf(orderNumber, parcelNumber, "Tax Authority Details", driver, "AZ", "Pima");

                    //Tax Details
                    int Month     = DateTime.Now.Month;
                    int yearcount = DateTime.Now.Year;
                    if (Month < 9)
                    {
                        yearcount--;
                    }
                    for (int i = 0; i <= 2; i++)
                    {
                        try
                        {
                            driver.Navigate().GoToUrl("http://www.to.pima.gov/property-information/property-inquiry");
                            IWebElement ITaxframe = driver.FindElement(By.Id("blockrandom"));
                            driver.SwitchTo().Frame(ITaxframe);
                            driver.FindElement(By.XPath("//*[@id='content']/center/form/table[1]/tbody/tr[1]/td/input")).SendKeys(parcelNumber.Replace("-", "").Trim());
                            IWebElement   IYearselect = driver.FindElement(By.XPath("//*[@id='content']/center/form/table[1]/tbody/tr[2]/td/select"));
                            SelectElement selectYear  = new SelectElement(IYearselect);
                            selectYear.SelectByText(yearcount.ToString());
                            gc.CreatePdf(orderNumber, parcelNumber, "Tax Search Details" + i, driver, "AZ", "Pima");
                            driver.FindElement(By.XPath("//*[@id='content']/center/form/table[1]/tbody/tr[4]/td/input")).SendKeys(Keys.Enter);
                            Thread.Sleep(2000);
                            gc.CreatePdf(orderNumber, parcelNumber, "Tax Search Result Details" + i, driver, "AZ", "Pima");


                            IWebElement ITaxAssess = driver.FindElement(By.XPath("//*[@id='content']/center[1]/table/tbody/tr[1]/td/table"));
                            string      StateCode  = gc.Between(ITaxAssess.Text, "STATE CODE:", "TAX YEAR:");
                            amck.TaxId = StateCode;
                            string StrTaxYear = gc.Between(ITaxAssess.Text, "TAX YEAR:", "TOTAL TAX:");
                            amck.TaxYear = StrTaxYear;
                            string StrTotalTax = "", basetax = "";
                            StrTotalTax = gc.Between(ITaxAssess.Text, "TOTAL TAX:", "AS OF DATE:");

                            string      StrAsOfDate     = gc.Between(ITaxAssess.Text, "AS OF DATE:", "TRC NO:");
                            IWebElement ITaxOwner       = driver.FindElement(By.XPath("//*[@id='content']/center[1]/table/tbody/tr[2]/td[3]/table"));
                            string      StrTaxOwner     = gc.Between(ITaxOwner.Text.Replace("\r\n", " "), "TAXPAYER NAME/ADDRESS", "PROPERTY ADDRESS");
                            string      StrTaxAddress   = gc.Between(ITaxOwner.Text, "PROPERTY ADDRESS", "LEGAL DESCRIPTION");
                            string      StrTaxOwnerName = StrTaxOwner;
                            string      StrTaxLegal     = gc.Between(ITaxOwner.Text, "LEGAL DESCRIPTION", "PAID BY");
                            string      StrTaxPaid      = gc.Between(ITaxOwner.Text, "PAID BY", "ON BEHALF OF");
                            string      StrTaxBehalf    = GlobalClass.After(ITaxOwner.Text, "ON BEHALF OF").Replace("\r\n", "");

                            string              installTitle = "", firstInstalldel = "", secondInstalldel = "", firstInstallRem = "", secondInstallRem = "", firstInstall = "", secondInstall = "", totalInstall = "", firstInstalltaxpaid = "", secondInstalltaxpaid = "";
                            int                 installcount   = 0;
                            IWebElement         ITaxInstall    = driver.FindElement(By.XPath("//*[@id='content']/center[1]/table/tbody/tr[2]/td[1]/table[1]"));
                            IList <IWebElement> ITaxInstallRow = ITaxInstall.FindElements(By.TagName("tr"));
                            IList <IWebElement> ITaxInstallTD;
                            IList <IWebElement> ITaxInstallTH;
                            foreach (IWebElement install in ITaxInstallRow)
                            {
                                ITaxInstallTD = install.FindElements(By.TagName("td"));
                                ITaxInstallTH = install.FindElements(By.TagName("th"));
                                if (ITaxInstallTD.Count != 0 && ITaxInstallTH.Count != 0 && !install.Text.Contains("INSTALLMENT") && !install.Text.Contains("CURRENT STATUS AND SUMMARY") && install.Text.Trim() != "")
                                {
                                    if (ITaxInstallTH.Count == 1 && !install.Text.Contains("TOTAL DUE:"))
                                    {
                                        string Currentstatus = yearcount + "~" + ITaxInstallTH[0].Text + "~" + ITaxInstallTD[0].Text + "~" + ITaxInstallTD[1].Text + "~" + ITaxInstallTD[2].Text;
                                        if (ITaxInstallTH[0].Text == "TAX DUE:")
                                        {
                                            firstInstall  = ITaxInstallTD[0].Text;
                                            secondInstall = ITaxInstallTD[1].Text;
                                            totalInstall  = ITaxInstallTD[2].Text;
                                            if (firstInstall != "")
                                            {
                                                amck.Instamount1 = firstInstall;
                                            }
                                            if (secondInstall != "")
                                            {
                                                amck.Instamount2 = secondInstall;
                                            }
                                        }
                                        if (ITaxInstallTH[0].Text == "TAX PAID:")
                                        {
                                            firstInstalltaxpaid  = ITaxInstallTD[0].Text;
                                            secondInstalltaxpaid = ITaxInstallTD[1].Text;

                                            if (firstInstalltaxpaid != "")
                                            {
                                                amck.Instamountpaid1 = firstInstalltaxpaid.Replace("(", "").Replace(")", "");;
                                            }
                                            if (secondInstalltaxpaid != "")
                                            {
                                                amck.Instamountpaid2 = secondInstalltaxpaid.Replace("(", "").Replace(")", "");;
                                            }
                                        }
                                        if (ITaxInstallTH[0].Text == "REMAINING AMOUNT:")
                                        {
                                            firstInstallRem  = ITaxInstallTD[0].Text;
                                            secondInstallRem = ITaxInstallTD[1].Text;

                                            if (firstInstallRem == "$0.00")
                                            {
                                                amck.InstPaidDue1 = "Paid";
                                            }
                                            else
                                            {
                                                amck.InstPaidDue1 = "Due";
                                            }
                                            if (secondInstallRem == "$0.00")
                                            {
                                                amck.InstPaidDue2 = "Paid";
                                            }
                                            else
                                            {
                                                amck.InstPaidDue2 = "Due";
                                            }
                                        }
                                        if (ITaxInstallTH[0].Text == "INTEREST DUE:")
                                        {
                                            firstInstalldel  = ITaxInstallTD[0].Text;
                                            secondInstalldel = ITaxInstallTD[1].Text;

                                            if (firstInstalldel != "")
                                            {
                                                amck.IsDelinquent = "Yes";
                                            }
                                            else
                                            {
                                                amck.IsDelinquent = "No";
                                            }
                                            if (secondInstalldel != "")
                                            {
                                                amck.IsDelinquent = "Yes";
                                            }
                                            else
                                            {
                                                amck.IsDelinquent = "No";
                                            }
                                        }
                                        gc.insert_date(orderNumber, parcelNumber, 1370, Currentstatus, 1, DateTime.Now);
                                    }
                                    if (install.Text.Contains("TOTAL DUE:"))
                                    {
                                        string Currentstatus = yearcount + "~" + ITaxInstallTH[0].Text + "~" + " " + "~" + " " + "~" + ITaxInstallTD[0].Text;
                                        gc.insert_date(orderNumber, parcelNumber, 1370, Currentstatus, 1, DateTime.Now);
                                    }
                                }
                            }
                            if (i == 0)
                            {
                                if (amck.IsDelinquent != "Yes")
                                {
                                    gc.InsertAmrockTax(orderNumber, amck.TaxId, amck.Instamount1, amck.Instamount2, amck.Instamount3, amck.Instamount4, amck.Instamountpaid1, amck.Instamountpaid2, amck.Instamountpaid3, amck.Instamountpaid4, amck.InstPaidDue1, amck.InstPaidDue2, amck.instPaidDue3, amck.instPaidDue4, amck.IsDelinquent);
                                }
                                else
                                {
                                    gc.InsertAmrockTax(orderNumber, amck.TaxId, null, null, null, null, null, null, null, null, null, null, null, null, amck.IsDelinquent);
                                }
                            }
                            string              HistoryYear = "", HistoryAmount = "";
                            IWebElement         ITaxHistory    = driver.FindElement(By.XPath("//*[@id='content']/center[1]/table/tbody/tr[2]/td[1]/table[2]/tbody"));
                            IList <IWebElement> ITaxHistoryRow = ITaxHistory.FindElements(By.TagName("tr"));
                            IList <IWebElement> ITaxHistoryTD;
                            IList <IWebElement> ITaxHistoryTH;
                            foreach (IWebElement history in ITaxHistoryRow)
                            {
                                ITaxHistoryTD = history.FindElements(By.TagName("td"));
                                ITaxHistoryTH = history.FindElements(By.TagName("th"));
                                if (ITaxHistoryTD.Count != 0 && ITaxHistoryTH.Count != 0)
                                {
                                    HistoryYear   = ITaxHistoryTH[0].Text.Replace(":", "");
                                    HistoryAmount = ITaxHistoryTD[0].Text;

                                    string historyDetails = HistoryYear + "~" + HistoryAmount;
                                    gc.insert_date(orderNumber, parcelNumber, 1371, historyDetails, 1, DateTime.Now);
                                }
                            }



                            driver.Navigate().GoToUrl("http://www.to.pima.gov/tax-information/tax-statement");
                            IWebElement ITaxStateframe = driver.FindElement(By.Id("blockrandom"));
                            driver.SwitchTo().Frame(ITaxStateframe);
                            driver.FindElement(By.XPath("//*[@id='content']/center/form/table/tbody/tr[1]/td/input")).SendKeys(parcelNumber.Replace("-", "").Trim());
                            IWebElement   IstateYear = driver.FindElement(By.XPath("//*[@id='content']/center/form/table/tbody/tr[2]/td/select"));
                            SelectElement stateYear  = new SelectElement(IstateYear);
                            stateYear.SelectByText(yearcount.ToString());
                            gc.CreatePdf(orderNumber, parcelNumber, "Tax Statement Search Details" + i, driver, "AZ", "Pima");
                            driver.FindElement(By.XPath("//*[@id='content']/center/form/table/tbody/tr[3]/td/input")).SendKeys(Keys.Enter);
                            Thread.Sleep(2000);
                            gc.CreatePdf(orderNumber, parcelNumber, "Tax Statement Result Details" + i, driver, "AZ", "Pima");
                            strTaxAuthor = driver.FindElement(By.XPath("//*[@id='statement']/center[1]/table[5]/tbody/tr/td[3]/table/tbody/tr[2]/td[1]")).Text;
                            string TaxDetails = StateCode + "~" + StrTaxYear + "~" + StrTotalTax + "~" + StrAsOfDate + "~" + StrTaxAddress + "~" + StrTaxOwnerName + "~" + StrTaxLegal + "~" + StrTaxPaid + "~" + StrTaxBehalf + "~" + strTaxAuthor;
                            gc.insert_date(orderNumber, parcelNumber, 1369, TaxDetails, 1, DateTime.Now);
                            string      TaxSumAmount = "", strTaxAuthority = "", TaxSumTitle = "";
                            IWebElement ITaxAuthority = driver.FindElement(By.XPath("//*[@id='statement']/center[1]/table[5]/tbody/tr/td[3]/table"));
                            strTaxAuthority = gc.Between(ITaxAuthority.Text.Replace("\r\n", " "), "mail to:", "PLEASE INCLUDE").Trim();
                            IWebElement ITaxesYear = driver.FindElement(By.XPath("//*[@id='statement']/table[3]/tbody/tr/td[2]/table[1]"));
                            string[]    TaxesYear = gc.Between(ITaxesYear.Text, "JURISDICTION", "DIFFERENCE").Trim().Split(' ');
                            string      firstYear = "", secondYear = "";
                            try
                            {
                                firstYear = TaxesYear[0]; secondYear = TaxesYear[1];
                            }
                            catch { }
                            IWebElement         ITaxSummary    = driver.FindElement(By.XPath("//*[@id='statement']/table[3]/tbody/tr/td[1]/table[4]"));
                            IList <IWebElement> ITaxSummaryRow = ITaxSummary.FindElements(By.TagName("table"));
                            IList <IWebElement> ITaxSummaryTD;
                            IList <IWebElement> ITaxSummaryTTD;
                            IList <IWebElement> ITaxSummaryTTH;
                            foreach (IWebElement summary in ITaxSummaryRow)
                            {
                                ITaxSummaryTD = summary.FindElements(By.TagName("tr"));
                                if (ITaxSummaryTD.Count != 0)
                                {
                                    foreach (IWebElement Taxsummary in ITaxSummaryTD)
                                    {
                                        ITaxSummaryTTD = Taxsummary.FindElements(By.TagName("td"));
                                        ITaxSummaryTTH = Taxsummary.FindElements(By.TagName("th"));
                                        if (ITaxSummaryTD.Count != 0 && ITaxSummaryTTH.Count != 0 && !Taxsummary.Text.Contains("TOTAL TAX DUE FOR"))
                                        {
                                            TaxSumAmount += ITaxSummaryTTD[0].Text + "~";
                                            TaxSumTitle  += ITaxSummaryTTH[1].Text + "~";
                                        }
                                        if (ITaxSummaryTD.Count != 0 && ITaxSummaryTTH.Count != 0 && Taxsummary.Text.Contains("TOTAL TAX DUE FOR"))
                                        {
                                            TaxSumAmount += ITaxSummaryTTD[0].Text + "~";
                                            TaxSumTitle  += GlobalClass.Before(ITaxSummaryTTH[0].Text, "FOR") + "~";
                                        }
                                    }
                                }
                            }

                            IWebElement IState   = driver.FindElement(By.XPath("//*[@id='statement']/table[2]/tbody/tr/td[1]/table/tbody/tr/td/table"));
                            string      strState = GlobalClass.After(IState.Text, "PARCEL").Replace("\r\n", "").Trim();

                            IWebElement ITaxSummry   = driver.FindElement(By.XPath("//*[@id='statement']/table[3]/tbody/tr/td[1]/table[3]/tbody/tr/th/table"));
                            string      strTaxSummry = GlobalClass.Before(ITaxSummry.Text, " TAX SUMMARY");

                            if (i == 0)
                            {
                                db.ExecuteQuery("update data_field_master set Data_Fields_Text='" + "State Code" + "~" + "Tax Year" + "~" + TaxSumTitle.Remove(TaxSumTitle.Length - 1, 1) + "' where Id = '" + 1373 + "'");
                            }
                            gc.insert_date(orderNumber, parcelNumber, 1373, strState + "~" + strTaxSummry + "~" + TaxSumAmount.Remove(TaxSumAmount.Length - 1, 1), 1, DateTime.Now);

                            IWebElement         IJuri    = driver.FindElement(By.XPath("//*[@id='statement']/table[3]/tbody/tr/td[2]/table[2]"));
                            IList <IWebElement> IJuriRow = IJuri.FindElements(By.TagName("tr"));
                            IList <IWebElement> IJuriTd;
                            IList <IWebElement> IJuriTH;
                            foreach (IWebElement juri in IJuriRow)
                            {
                                IJuriTd = juri.FindElements(By.TagName("td"));
                                IJuriTH = juri.FindElements(By.TagName("th"));
                                if (IJuriTd.Count != 0 && juri.Text.Trim() != "" && !juri.Text.Trim().Contains("TOTALS"))
                                {
                                    string juriTitle  = IJuriTd[0].Text;
                                    string juriFirst  = IJuriTd[1].Text;
                                    string juriSecond = IJuriTd[2].Text;

                                    string summaryDetails = juriTitle + "~" + firstYear.Replace("TAXES", "").Trim() + "~" + juriFirst + "~" + secondYear.Replace("TAXES", "").Trim() + "~" + juriSecond;
                                    gc.insert_date(orderNumber, parcelNumber, 1374, summaryDetails, 1, DateTime.Now);
                                }
                                if (IJuriTd.Count != 0 && IJuriTH.Count != 0 && juri.Text.Trim() != "" && juri.Text.Trim().Contains("TOTALS"))
                                {
                                    string juriTitle  = IJuriTH[0].Text;
                                    string juriFirst  = IJuriTd[0].Text;
                                    string juriSecond = IJuriTd[1].Text;

                                    string summaryDetails = juriTitle + "~" + firstYear.Replace("TAXES", "").Trim() + "~" + juriFirst + "~" + secondYear.Replace("TAXES", "").Trim() + "~" + juriSecond;
                                    gc.insert_date(orderNumber, parcelNumber, 1374, summaryDetails, 1, DateTime.Now);
                                }
                            }
                        }
                        catch { }
                        yearcount--;
                    }

                    if (City.Contains("Tucson"))
                    {
                        try
                        {
                            //City of Tucson
                            driver.Navigate().GoToUrl("https://www.tucsonaz.gov/dfastwebpublic/default.aspx");
                            Thread.Sleep(2000);
                            IWebElement   Iselectparcel = driver.FindElement(By.Id("ctl00_MainContent_propertySearchDropDownList"));
                            SelectElement selectParcel  = new SelectElement(Iselectparcel);
                            selectParcel.SelectByText("Property ID");
                            driver.FindElement(By.Id("ctl00_MainContent_propertySearchPhraseTextBox")).SendKeys(parcelNumber);
                            gc.CreatePdf(orderNumber, parcelNumber, "City Tax Search Details", driver, "AZ", "Pima");
                            driver.FindElement(By.Id("ctl00_MainContent_searchButton")).SendKeys(Keys.Enter);
                            gc.CreatePdf(orderNumber, parcelNumber, "City Tax Search Result Details", driver, "AZ", "Pima");
                            driver.FindElement(By.Id("ctl00_MainContent_propertySearchGridView_ctl02_HyperLink1")).SendKeys(Keys.Enter);
                            gc.CreatePdf(orderNumber, parcelNumber, "City Tax Details", driver, "AZ", "Pima");
                            string AccountID    = driver.FindElement(By.Id("ctl00_MainContent_accountIdValueLabel")).Text;
                            string PropertyID   = driver.FindElement(By.Id("ctl00_MainContent_propertyIdValueLabel")).Text;
                            string AssessmentID = driver.FindElement(By.Id("ctl00_MainContent_assessmentIdValueLabel")).Text;
                            string OwnerID      = driver.FindElement(By.Id("ctl00_MainContent_Repeater1_ctl01_ownerValueLabel")).Text;
                            string AddressID    = driver.FindElement(By.Id("ctl00_MainContent_Repeater1_ctl01_ownerAddress1ValueLabel")).Text;

                            string cityDetails = AccountID + "~" + AssessmentID + "~" + OwnerID + "~" + AddressID;
                            gc.insert_date(orderNumber, PropertyID, 1375, cityDetails, 1, DateTime.Now);

                            IWebElement         ITransactionClick    = driver.FindElement(By.Id("menu-bar"));
                            IList <IWebElement> ITransactionClickRow = ITransactionClick.FindElements(By.TagName("li"));
                            IList <IWebElement> ITransactionClickTD;
                            foreach (IWebElement transClick in ITransactionClickRow)
                            {
                                ITransactionClickTD = transClick.FindElements(By.TagName("a"));
                                if (transClick.Text.Contains("Transactions"))
                                {
                                    ITransactionClickTD[0].Click();
                                    break;
                                }
                            }

                            //Transactions
                            Thread.Sleep(2000);
                            gc.CreatePdf(orderNumber, parcelNumber, "Tax Transaction Details", driver, "AZ", "Pima");
                            IWebElement         ITransaction    = driver.FindElement(By.Id("ctl00_MainContent_GridView1"));
                            IList <IWebElement> ITransactionRow = ITransaction.FindElements(By.TagName("tr"));
                            IList <IWebElement> ITransactionTD;
                            foreach (IWebElement trans in ITransactionRow)
                            {
                                ITransactionTD = trans.FindElements(By.TagName("td"));
                                if (ITransactionTD.Count != 0 && !trans.Text.Contains("Effective Date"))
                                {
                                    string EffectiveDate = ITransactionTD[0].Text;
                                    string PostDate      = ITransactionTD[1].Text;
                                    string InstallDate   = ITransactionTD[2].Text;
                                    string Description   = ITransactionTD[3].Text;
                                    string Charges       = ITransactionTD[4].Text;
                                    string Credits       = ITransactionTD[5].Text;
                                    string Balance       = ITransactionTD[6].Text;
                                    string DB            = ITransactionTD[7].Text;
                                    string DM            = ITransactionTD[8].Text;

                                    string summaryDetails = EffectiveDate + "~" + PostDate + "~" + InstallDate + "~" + Description + "~" + Charges + "~" + Credits + "~" + Balance + "~" + DB + "~" + DM;
                                    gc.insert_date(orderNumber, PropertyID, 1376, summaryDetails, 1, DateTime.Now);
                                }
                            }

                            //Repayment Details
                            IJavaScriptExecutor js      = (IJavaScriptExecutor)driver;
                            IWebElement         payment = driver.FindElement(By.LinkText("Repayment Schedule"));
                            Actions             action  = new Actions(driver);
                            action.MoveToElement(payment).Build().Perform();
                            payment.Click();
                            IWebElement ICurrent = driver.FindElement(By.LinkText("Current"));
                            ICurrent.Click();
                            Thread.Sleep(2000);
                            gc.CreatePdf(orderNumber, parcelNumber, "Tax Repayment Schedule Details", driver, "AZ", "Pima");
                            IWebElement         IRepaymentCurrent    = driver.FindElement(By.Id("ctl00_MainContent_GridView1"));
                            IList <IWebElement> IRepaymentCurrentRow = IRepaymentCurrent.FindElements(By.TagName("tr"));
                            IList <IWebElement> IRepaymentCurrentTD;
                            foreach (IWebElement current in IRepaymentCurrentRow)
                            {
                                IRepaymentCurrentTD = current.FindElements(By.TagName("td"));
                                if (IRepaymentCurrentTD.Count != 0)
                                {
                                    string BillingDate = IRepaymentCurrentTD[0].Text;
                                    string Rate        = IRepaymentCurrentTD[1].Text;
                                    string Balance     = IRepaymentCurrentTD[2].Text;
                                    string Principal   = IRepaymentCurrentTD[3].Text;
                                    string Interest    = IRepaymentCurrentTD[4].Text;
                                    string Total       = IRepaymentCurrentTD[5].Text;
                                    string Status      = IRepaymentCurrentTD[6].Text;

                                    string repaymentDetails = BillingDate + "~" + Rate + "~" + Balance + "~" + Principal + "~" + Interest + "~" + Total + "~" + Status;
                                    gc.insert_date(orderNumber, PropertyID, 1377, repaymentDetails, 1, DateTime.Now);
                                }
                            }
                        }
                        catch { }
                    }

                    TaxTime     = DateTime.Now.ToString("HH:mm:ss");
                    LastEndTime = DateTime.Now.ToString("HH:mm:ss");
                    gc.insert_TakenTime(orderNumber, "AZ", "Pima", StartTime, AssessmentTime, TaxTime, CitytaxTime, LastEndTime);
                    driver.Quit();
                    gc.mergpdf(orderNumber, "AZ", "Pima");
                    return("Data Inserted Successfully");
                }

                catch (Exception ex)
                {
                    driver.Quit();
                    throw ex;
                }
            }
        }
Beispiel #25
0
        public string FTP_LakeIL(string houseno, string Direction, string sname, string stype, string unitNumber, string zipcode, string parcelNumber, string ownername, string searchType, string orderNumber, string directParcel)
        {
            GlobalClass.global_orderNo             = orderNumber;
            HttpContext.Current.Session["orderNo"] = orderNumber;
            GlobalClass.global_parcelNo            = parcelNumber;

            string StartTime = "", AssessmentTime = "", TaxTime = "", CitytaxTime = "", LastEndTime = "";
            string address = "", lastName = "", firstName = "", Pinnumber = "", PropertyAdd = "", Strownername = "", Pin = "";

            var driverService = PhantomJSDriverService.CreateDefaultService();

            driverService.HideCommandPromptWindow = true;
            using (driver = new PhantomJSDriver())
            // using (driver = new ChromeDriver())
            {
                try
                {
                    StartTime = DateTime.Now.ToString("HH:mm:ss");


                    if (searchType == "titleflex")
                    {
                        if (Direction != "")
                        {
                            address = houseno + " " + Direction + " " + sname + " " + stype + " " + unitNumber;
                            address = address.Trim();
                        }
                        if (Direction == "")
                        {
                            address = houseno + " " + sname + " " + stype + " " + unitNumber;
                            address = address.Trim();
                        }
                        string titleaddress = address;
                        gc.TitleFlexSearch(orderNumber, "", "", titleaddress, "IL", "Lake");
                        if ((HttpContext.Current.Session["TitleFlex_Search"] != null && HttpContext.Current.Session["TitleFlex_Search"].ToString() == "Yes"))
                        {
                            driver.Quit();
                            return("MultiParcel");
                        }
                        else if (HttpContext.Current.Session["titleparcel"].ToString() == "")
                        {
                            HttpContext.Current.Session["Zero_LakeIL"] = "Zero";
                            driver.Quit();
                            return("No Data Found");
                        }
                        parcelNumber = HttpContext.Current.Session["titleparcel"].ToString();
                        searchType   = "parcel";
                    }

                    if (searchType == "address")
                    {
                        driver.Navigate().GoToUrl("https://apps03.lakecountyil.gov/comparables/PTAIAddress.aspx");
                        Thread.Sleep(4000);

                        driver.FindElement(By.XPath("//*[@id='tbStreetNum']")).SendKeys(houseno);
                        driver.FindElement(By.Id("tbStreetName")).SendKeys(sname);
                        try
                        {
                            IWebElement   streettype = driver.FindElement(By.Id("ddlStreetType"));
                            SelectElement sttype     = new SelectElement(streettype);
                            sttype.SelectByValue(stype);
                        }
                        catch { }
                        driver.FindElement(By.Id("tbZip")).SendKeys(zipcode);
                        gc.CreatePdf_WOP(orderNumber, "Address search", driver, "IL", "Lake");
                        driver.FindElement(By.Id("cmdSubmit")).SendKeys(Keys.Enter);
                        Thread.Sleep(3000);
                        gc.CreatePdf_WOP(orderNumber, "Address search Result", driver, "IL", "Lake");

                        try
                        {
                            int         Max = 0;
                            string      strowner = "", strAddress = "", strCity = "";
                            string      Record = "";
                            IWebElement multiaddress;

                            multiaddress = driver.FindElement(By.Id("Table2"));

                            IList <IWebElement> multiRow = multiaddress.FindElements(By.TagName("tr"));
                            IList <IWebElement> multiTD;
                            foreach (IWebElement multi in multiRow)
                            {
                                multiTD = multi.FindElements(By.TagName("td"));
                                if (multiTD.Count != 0 && multiRow.Count >= 1 && multiRow.Count <= 25 && multi.Text.Trim() != "")
                                {
                                    strAddress   = multiTD[0].Text.Trim();
                                    parcelNumber = GlobalClass.After(strAddress, "=").Trim();
                                    PropertyAdd  = GlobalClass.Before(strAddress, "=").Trim();

                                    string multidetails = PropertyAdd;
                                    gc.insert_date(orderNumber, parcelNumber, 1861, multidetails, 1, DateTime.Now);
                                    Max++;
                                }
                                if (multiTD.Count != 0 && multiRow.Count > 25)
                                {
                                    HttpContext.Current.Session["multiparcel_LakeIL_Maximum"] = "Maximum";
                                    driver.Quit();
                                    return("Maximum");
                                }
                            }
                            if (Max > 1 && Max < 26)
                            {
                                HttpContext.Current.Session["multiparcel_LakeIL"] = "Yes";
                                driver.Quit();
                                return("MultiParcel");
                            }

                            if (Max == 0)
                            {
                                HttpContext.Current.Session["Zero_LakeIL"] = "Zero";
                                driver.Quit();
                                return("No Data Found");
                            }
                        }
                        catch { }
                    }



                    else if (searchType == "parcel")
                    {
                        driver.Navigate().GoToUrl("https://apps03.lakecountyil.gov/comparables/PTAIPIN.aspx");
                        Thread.Sleep(4000);

                        driver.FindElement(By.Id("txtPIN")).SendKeys(parcelNumber);
                        Thread.Sleep(3000);
                        gc.CreatePdf(orderNumber, parcelNumber, "Parcel search", driver, "IL", "Lake");
                        try
                        {
                            driver.FindElement(By.XPath("//*[@id='Button2']")).SendKeys(Keys.Enter);
                            Thread.Sleep(3000);
                        }
                        catch { }

                        try
                        {
                            int         Max = 0;
                            string      strowner = "", strAddress = "", strCity = "";
                            string      Record = "";
                            IWebElement multiaddress;

                            gc.CreatePdf(orderNumber, parcelNumber, "Parcel search Result", driver, "IL", "Lake");

                            multiaddress = driver.FindElement(By.Id("Table2"));

                            IList <IWebElement> multiRow = multiaddress.FindElements(By.TagName("tr"));
                            IList <IWebElement> multiTD;
                            foreach (IWebElement multi in multiRow)
                            {
                                multiTD = multi.FindElements(By.TagName("td"));
                                if (multiTD.Count != 0 && multiRow.Count >= 1 && multiRow.Count <= 25 && multi.Text.Trim() != "")
                                {
                                    strAddress   = multiTD[0].Text.Trim();
                                    parcelNumber = GlobalClass.After(strAddress, "=").Trim();
                                    PropertyAdd  = GlobalClass.Before(strAddress, "=").Trim();

                                    string multidetails = PropertyAdd;
                                    gc.insert_date(orderNumber, parcelNumber, 1861, multidetails, 1, DateTime.Now);
                                    Max++;
                                }
                                if (multiTD.Count != 0 && multiRow.Count > 25)
                                {
                                    HttpContext.Current.Session["multiparcel_LakeIL_Maximum"] = "Maximum";
                                    driver.Quit();
                                    return("Maximum");
                                }
                            }
                            if (Max > 1 && Max < 26)
                            {
                                HttpContext.Current.Session["multiparcel_LakeIL"] = "Yes";
                                driver.Quit();
                                return("MultiParcel");
                            }

                            if (Max == 0)
                            {
                                HttpContext.Current.Session["Zero_LakeIL"] = "Zero";
                                driver.Quit();
                                return("No Data Found");
                            }
                        }
                        catch { }
                    }



                    //property details

                    string streetAddress = "", City = "", Zipcode = "", LandAmount = "";
                    string BuildingAmount = "", TotalAmount = "", Township = "", AssessDate = "", ClassDesc = "", YearBuilt = "";

                    string bulkdata = driver.FindElement(By.XPath("//*[@id='PropertyCharacteristics1_tblPropertyAddress']/tbody")).Text;
                    parcelNumber = gc.Between(bulkdata, "Pin", "Street Address").Replace(":", "").Replace("-", "").Trim();

                    streetAddress  = gc.Between(bulkdata, "Street Address", "City").Replace(":", "").Trim();
                    City           = gc.Between(bulkdata, "City", "Zip Code").Replace(":", "").Trim();
                    Zipcode        = gc.Between(bulkdata, "Zip Code", "Land Amount").Replace(":", "").Trim();
                    LandAmount     = gc.Between(bulkdata, "Land Amount", "Building Amount").Replace(":", "").Trim();
                    BuildingAmount = gc.Between(bulkdata, "Building Amount", "Total Amount").Replace(":", "").Trim();
                    TotalAmount    = gc.Between(bulkdata, "Total Amount", "Township").Replace(":", "").Trim();
                    Township       = gc.Between(bulkdata, "Township", "Assessment Date").Replace(":", "").Trim();
                    AssessDate     = GlobalClass.After(bulkdata, "Assessment Date").Replace(":", "").Trim();
                    ClassDesc      = driver.FindElement(By.XPath("//*[@id='PropertyCharacteristics1_lblClassDescription']")).Text;
                    try
                    {
                        YearBuilt = driver.FindElement(By.Id("PropertyCharacteristics1_lblEffectiveAge")).Text;
                    }
                    catch { }

                    string propertydetails = streetAddress + "~" + City + "~" + Zipcode + "~" + LandAmount + "~" + BuildingAmount + "~" + TotalAmount + "~" + Township + "~" + AssessDate + "~" + ClassDesc + "~" + YearBuilt;
                    gc.insert_date(orderNumber, parcelNumber, 1793, propertydetails, 1, DateTime.Now);

                    gc.CreatePdf(orderNumber, parcelNumber, "Property Details", driver, "IL", "Lake");



                    // Tax Information Details
                    string taxAuth = "", taxauth1 = "", taxauth2 = "";
                    try
                    {
                        driver.Navigate().GoToUrl("http://www.lakecountyil.gov/508/Current-Payment-Status");
                        taxAuth = driver.FindElement(By.XPath("//*[@id='divInfoAdvae35de24-85e5-460b-b9ce-18eda922e6cb']/div[1]/div/div/ol/li/span")).Text.Replace("Contact Us", "").Replace("Lake County, IL", "").Replace("Parking and Directions", "").Trim();
                        gc.CreatePdf(orderNumber, parcelNumber, "Tax Authority", driver, "IL", "Lake");
                    }
                    catch { }
                    driver.Navigate().GoToUrl("https://apps03.lakecountyil.gov/treasurer/collbook/collbook2.asp");
                    Thread.Sleep(5000);

                    driver.FindElement(By.XPath("//*[@id='table53']/tbody/tr[3]/td/input")).SendKeys(parcelNumber);
                    gc.CreatePdf(orderNumber, parcelNumber, "Tax Search", driver, "IL", "Lake");
                    driver.FindElement(By.XPath("//*[@id='table53']/tbody/tr[5]/td/input")).Click();
                    Thread.Sleep(4000);
                    try
                    {
                        driver.SwitchTo().Window(driver.WindowHandles.Last());
                        Thread.Sleep(2000);
                    }
                    catch { }
                    gc.CreatePdf(orderNumber, parcelNumber, "Tax Search Result", driver, "IL", "Lake");
                    int    taxyear = 0;
                    string tax_year = "", tax_year1 = "";
                    tax_year  = driver.FindElement(By.Id("DTLNavigator_ddTaxYear")).Text;
                    tax_year1 = GlobalClass.Before(tax_year, "\r\n").Trim();
                    int Taxmonth = DateTime.Now.Month;
                    if (Taxmonth >= 9)
                    {
                        taxyear = Convert.ToInt32(tax_year1);
                    }
                    else
                    {
                        taxyear = Convert.ToInt32(tax_year1) - 1;
                    }


                    string PropertyLocation = "", PropertyLocation2 = "", TaxYear = "", TaxCode = "", Acres = "", LegalDesc1 = "", LegalDesc2 = "", LegalDesc3 = "", LegalDesc = "";

                    PropertyLocation = driver.FindElement(By.XPath("//*[@id='datalet_header_row']/td/table/tbody/tr[4]/td[2]")).Text;
                    TaxYear          = driver.FindElement(By.XPath("//*[@id='datalet_header_row']/td/table/tbody/tr[5]/td[1]")).Text;
                    TaxYear          = gc.Between(TaxYear, "Tax Year", "Taxes").Replace(":", "").Replace("(", "").Trim();
                    try
                    {
                        driver.FindElement(By.XPath("//*[@id='sidemenu']/li[1]/a/span")).Click();
                        Thread.Sleep(4000);
                        gc.CreatePdf(orderNumber, parcelNumber, "Acre - Info", driver, "IL", "Lake");
                        Acres = driver.FindElement(By.XPath("//*[@id='Parcel']/tbody/tr[15]/td[2]")).Text;
                    }
                    catch { }

                    try
                    {
                        driver.FindElement(By.XPath("//*[@id='sidemenu']/li[2]/a/span")).Click();
                        Thread.Sleep(2000);
                        gc.CreatePdf(orderNumber, parcelNumber, "Legal Information", driver, "IL", "Lake");
                        TaxCode    = driver.FindElement(By.XPath("//*[@id='Legal Description']/tbody/tr[9]/td[2]")).Text;
                        LegalDesc1 = driver.FindElement(By.XPath("//*[@id='Legal Description']/tbody/tr[4]/td[2]")).Text.Trim();
                        LegalDesc2 = driver.FindElement(By.XPath("//*[@id='Legal Description']/tbody/tr[5]/td[2]")).Text.Trim();
                        LegalDesc3 = driver.FindElement(By.XPath("//*[@id='Legal Description']/tbody/tr[6]/td[2]")).Text.Trim();
                        LegalDesc  = LegalDesc1 + " " + LegalDesc2 + " " + LegalDesc3;
                        LegalDesc  = LegalDesc.Trim();
                    }
                    catch { }


                    gc.CreatePdf(orderNumber, parcelNumber, "Tax Bill" + TaxYear, driver, "IL", "Lake");

                    try
                    {
                        string TaxInfodetails = PropertyLocation + "~" + TaxYear + "~" + TaxCode + "~" + Acres + "~" + LegalDesc + "~" + taxAuth;
                        gc.insert_date(orderNumber, parcelNumber, 1800, TaxInfodetails, 1, DateTime.Now);
                    }
                    catch { }

                    try
                    {
                        driver.FindElement(By.XPath("//*[@id='sidemenu']/li[5]/a/span")).Click();
                        Thread.Sleep(2000);
                        gc.CreatePdf(orderNumber, parcelNumber, "Tax Summary" + TaxYear, driver, "IL", "Lake");
                    }
                    catch { }
                    // Taxing Body Details
                    try
                    {
                        IWebElement         TaxBody   = driver.FindElement(By.XPath("//*[@id='Property Tax by Entity']/tbody"));
                        IList <IWebElement> TRTaxBody = TaxBody.FindElements(By.TagName("tr"));
                        IList <IWebElement> THTaxBody = TaxBody.FindElements(By.TagName("th"));
                        IList <IWebElement> TDTaxBody;
                        foreach (IWebElement row in TRTaxBody)
                        {
                            TDTaxBody = row.FindElements(By.TagName("td"));
                            if (TDTaxBody.Count != 0 && !row.Text.Contains("Entities") && row.Text.Trim() != "")
                            {
                                string TaxBodydetails = TDTaxBody[0].Text + "~" + TDTaxBody[1].Text + "~" + TDTaxBody[2].Text;
                                gc.insert_date(orderNumber, parcelNumber, 1801, TaxBodydetails, 1, DateTime.Now);
                            }
                        }
                    }
                    catch { }

                    // Tax Status

                    try
                    {
                        string              value = "", taxyear1 = "", valuetype = "";
                        IWebElement         Assessmentdetails   = driver.FindElement(By.XPath("//*[@id='Tax Status']/tbody"));
                        IList <IWebElement> TRAssessmentdetails = Assessmentdetails.FindElements(By.TagName("tr"));
                        IList <IWebElement> THAssessmentdetails = Assessmentdetails.FindElements(By.TagName("th"));
                        IList <IWebElement> TDAssessmentdetails;
                        foreach (IWebElement row in TRAssessmentdetails)
                        {
                            TDAssessmentdetails = row.FindElements(By.TagName("td"));
                            if (THAssessmentdetails.Count != 0 && row.Text.Contains("Value Type"))
                            {
                                valuetype += THAssessmentdetails[0].Text + "~";
                                value     += THAssessmentdetails[1].Text.Replace("Tax Year", "").Replace("\r\n", "") + "~";
                            }
                            if (TDAssessmentdetails.Count != 0 && !row.Text.Contains("Value Type") && row.Text.Trim() != "")
                            {
                                valuetype += TDAssessmentdetails[0].Text.Replace(":", "") + "~";
                                value     += TDAssessmentdetails[1].Text + "~";
                            }
                        }


                        DBconnection dbconn = new DBconnection();
                        dbconn.ExecuteQuery("update data_field_master set Data_Fields_Text='" + valuetype.Remove(valuetype.Length - 1, 1) + "' where Id = '" + 1802 + "'");
                        gc.insert_date(orderNumber, parcelNumber, 1802, value.Remove(value.Length - 1, 1), 1, DateTime.Now);
                    }
                    catch (Exception ex) { }



                    try
                    {
                        driver.FindElement(By.XPath("//*[@id='sidemenu']/li[7]/a/span")).Click();
                        Thread.Sleep(2000);
                        gc.CreatePdf(orderNumber, parcelNumber, "Tax Payment History", driver, "IL", "Lake");
                    }
                    catch { }

                    // Tax Payment Details
                    try
                    {
                        IWebElement         Taxpayment   = driver.FindElement(By.XPath("//*[@id='Payments']/tbody"));
                        IList <IWebElement> TRTaxpayment = Taxpayment.FindElements(By.TagName("tr"));
                        IList <IWebElement> THTaxpayment = Taxpayment.FindElements(By.TagName("th"));
                        IList <IWebElement> TDTaxpayment;
                        foreach (IWebElement row in TRTaxpayment)
                        {
                            TDTaxpayment = row.FindElements(By.TagName("td"));
                            if (TDTaxpayment.Count != 0 && !row.Text.Contains("Recept") && row.Text.Trim() != "")
                            {
                                string TaxpaymentHistory = TDTaxpayment[0].Text + "~" + TDTaxpayment[1].Text + "~" + TDTaxpayment[2].Text + "~" + TDTaxpayment[3].Text + "~" + TDTaxpayment[4].Text + "~" + TDTaxpayment[5].Text + "~" + TDTaxpayment[6].Text + "~" + TDTaxpayment[7].Text + "~" + TDTaxpayment[8].Text + "~" + TDTaxpayment[9].Text;
                                gc.insert_date(orderNumber, parcelNumber, 1814, TaxpaymentHistory, 1, DateTime.Now);
                            }
                        }
                    }
                    catch { }

                    // Tax Redemption
                    try
                    {
                        driver.FindElement(By.XPath("//*[@id='sidemenu']/li[8]/a/span")).Click();
                        Thread.Sleep(4000);
                        gc.CreatePdf(orderNumber, parcelNumber, "Tax sale or Redemption", driver, "IL", "Lake");
                    }
                    catch { }
                    // Tax Sale/Redemption Receipts
                    try
                    {
                        IWebElement         Taxsale   = driver.FindElement(By.XPath("//*[@id='frmMain']/div[3]/div/div/table/tbody/tr/td/table/tbody/tr[2]/td/div/table/tbody"));
                        IList <IWebElement> TRTaxsale = Taxsale.FindElements(By.TagName("tr"));
                        IList <IWebElement> THTaxsale = Taxsale.FindElements(By.TagName("th"));
                        IList <IWebElement> TDTaxsale;
                        foreach (IWebElement row in TRTaxsale)
                        {
                            TDTaxsale = row.FindElements(By.TagName("td"));
                            if (TDTaxsale.Count != 0 && !row.Text.Contains("Sale or Redemption") && !row.Text.Contains("No Data") && row.Text.Trim() != "")
                            {
                                string TaxSaledetails = TDTaxsale[0].Text + "~" + TDTaxsale[1].Text + "~" + TDTaxsale[2].Text + "~" + TDTaxsale[3].Text + "~" + TDTaxsale[4].Text + "~" + TDTaxsale[5].Text;
                                gc.insert_date(orderNumber, parcelNumber, 1848, TaxSaledetails, 1, DateTime.Now);
                            }
                            if (TDTaxsale.Count != 0 && !row.Text.Contains("Sale or Redemption") && row.Text.Contains("No Data") && row.Text.Trim() != "")
                            {
                                string TaxSaledetails = TDTaxsale[0].Text + "~" + "" + "~" + "" + "~" + "" + "~" + "" + "~" + "";
                                gc.insert_date(orderNumber, parcelNumber, 1848, TaxSaledetails, 1, DateTime.Now);
                            }
                        }
                    }
                    catch { }
                    // Tax Adjustment
                    try
                    {
                        driver.FindElement(By.XPath("//*[@id='sidemenu']/li[9]/a/span")).Click();
                        Thread.Sleep(4000);
                        gc.CreatePdf(orderNumber, parcelNumber, "Tax Adjustment", driver, "IL", "Lake");
                    }
                    catch { }
                    // Tax Adjustment
                    try
                    {
                        IWebElement         TaxAdjust   = driver.FindElement(By.XPath("//*[@id='frmMain']/div[3]/div/div/table/tbody/tr/td/table/tbody/tr[2]/td/div/table/tbody"));
                        IList <IWebElement> TRTaxAdjust = TaxAdjust.FindElements(By.TagName("tr"));
                        IList <IWebElement> THTaxAdjust = TaxAdjust.FindElements(By.TagName("th"));
                        IList <IWebElement> TDTaxAdjust;
                        foreach (IWebElement row in TRTaxAdjust)
                        {
                            TDTaxAdjust = row.FindElements(By.TagName("td"));
                            if (TDTaxAdjust.Count != 0 && !row.Text.Contains("Sale or Redemption") && row.Text.Trim() != "" && !row.Text.Contains("No Data"))
                            {
                                string TaxAdjustmentdetails = TDTaxAdjust[0].Text + "~" + TDTaxAdjust[1].Text + "~" + TDTaxAdjust[2].Text + "~" + TDTaxAdjust[3].Text + "~" + TDTaxAdjust[4].Text + "~" + TDTaxAdjust[5].Text;
                                gc.insert_date(orderNumber, parcelNumber, 1865, TaxAdjustmentdetails, 1, DateTime.Now);
                            }
                            if (TDTaxAdjust.Count != 0 && !row.Text.Contains("Sale or Redemption") && row.Text.Trim() != "" && row.Text.Contains("No Data"))
                            {
                                string TaxAdjustmentdetails = TDTaxAdjust[0].Text;
                                gc.insert_date(orderNumber, parcelNumber, 1865, TaxAdjustmentdetails, 1, DateTime.Now);
                            }
                        }
                    }
                    catch { }

                    // Tax Value History
                    try
                    {
                        driver.FindElement(By.XPath("//*[@id='sidemenu']/li[13]/a/span")).Click();
                        Thread.Sleep(4000);
                        gc.CreatePdf(orderNumber, parcelNumber, "Tax Value History", driver, "IL", "Lake");
                    }
                    catch { }

                    try
                    {
                        IWebElement         valuehistory   = driver.FindElement(By.XPath("//*[@id='Values History']/tbody"));
                        IList <IWebElement> TRvaluehistory = valuehistory.FindElements(By.TagName("tr"));
                        IList <IWebElement> THvaluehistory = valuehistory.FindElements(By.TagName("th"));
                        IList <IWebElement> TDvaluehistory;
                        foreach (IWebElement row in TRvaluehistory)
                        {
                            TDvaluehistory = row.FindElements(By.TagName("td"));
                            if (TDvaluehistory.Count != 0 && !row.Text.Contains("Land MV") && row.Text.Trim() != "")
                            {
                                string ValueHistorydetails = TDvaluehistory[0].Text + "~" + TDvaluehistory[1].Text + "~" + TDvaluehistory[2].Text + "~" + TDvaluehistory[3].Text + "~" + TDvaluehistory[4].Text + "~" + TDvaluehistory[5].Text + "~" + TDvaluehistory[6].Text + "~" + TDvaluehistory[7].Text + "~" + TDvaluehistory[8].Text + "~" + TDvaluehistory[9].Text;
                                gc.insert_date(orderNumber, parcelNumber, 1866, ValueHistorydetails, 1, DateTime.Now);
                            }
                        }
                    }
                    catch { }


                    // Tax Excemptions Current
                    try
                    {
                        driver.FindElement(By.XPath("//*[@id='sidemenu']/li[19]/a/span")).Click();
                        Thread.Sleep(4000);
                        gc.CreatePdf(orderNumber, parcelNumber, "Tax Excemptions Current", driver, "IL", "Lake");
                    }
                    catch { }

                    string Excemptioncurrent = "", Asmtyear = "", Payyear = "", Excemptiontype = "", status = "", Receiptdate = "";
                    try
                    {
                        Excemptioncurrent = driver.FindElement(By.XPath("//*[@id='Exemptions']/tbody")).Text;
                        Asmtyear          = gc.Between(Excemptioncurrent, "Asmt Year", "Pay Year").Replace(":", "").Trim();
                        Payyear           = gc.Between(Excemptioncurrent, "Pay Year", "Exemption Type").Replace(":", "").Trim();
                        Excemptiontype    = gc.Between(Excemptioncurrent, "Exemption Type", "Status").Replace(":", "").Trim();
                        status            = gc.Between(Excemptioncurrent, "Status", "Application/Renewal Receipt Date").Replace(":", "").Trim();
                        Receiptdate       = gc.Between(Excemptioncurrent, "Application/Renewal Receipt Date", "SmartFile Filing ID").Replace(":", "").Trim();

                        string TaxExcemptionCurrent = Asmtyear + "~" + Payyear + "~" + Excemptiontype + "~" + status + "~" + Receiptdate;
                        gc.insert_date(orderNumber, parcelNumber, 1867, TaxExcemptionCurrent, 1, DateTime.Now);
                    }
                    catch { }

                    // Tax Excemptions History
                    try
                    {
                        driver.FindElement(By.XPath("//*[@id='sidemenu']/li[20]/a/span")).Click();
                        Thread.Sleep(4000);
                        gc.CreatePdf(orderNumber, parcelNumber, "Tax Excemptions History", driver, "IL", "Lake");
                    }
                    catch { }

                    try
                    {
                        IWebElement         Excemptionhistory   = driver.FindElement(By.XPath("//*[@id='Exemption History']/tbody"));
                        IList <IWebElement> TRExcemptionhistory = Excemptionhistory.FindElements(By.TagName("tr"));
                        IList <IWebElement> THExcemptionhistory = Excemptionhistory.FindElements(By.TagName("th"));
                        IList <IWebElement> TDExcemptionhistory;
                        foreach (IWebElement row in TRExcemptionhistory)
                        {
                            TDExcemptionhistory = row.FindElements(By.TagName("td"));
                            if (TDExcemptionhistory.Count != 0 && !row.Text.Contains("Tax Year") && row.Text.Trim() != "")
                            {
                                string ValueHistorydetails = TDExcemptionhistory[0].Text + "~" + TDExcemptionhistory[1].Text + "~" + TDExcemptionhistory[2].Text + "~" + TDExcemptionhistory[3].Text + "~" + TDExcemptionhistory[4].Text + "~" + TDExcemptionhistory[5].Text + "~" + TDExcemptionhistory[6].Text + "~" + TDExcemptionhistory[7].Text + "~" + TDExcemptionhistory[8].Text + "~" + TDExcemptionhistory[9].Text;
                                gc.insert_date(orderNumber, parcelNumber, 1868, ValueHistorydetails, 1, DateTime.Now);
                            }
                        }
                    }
                    catch { }

                    // Land Information
                    try
                    {
                        driver.FindElement(By.XPath("//*[@id='sidemenu']/li[22]/a/span")).Click();
                        Thread.Sleep(4000);
                        gc.CreatePdf(orderNumber, parcelNumber, "Land Information", driver, "IL", "Lake");
                    }
                    catch { }

                    try
                    {
                        IWebElement         landsummary   = driver.FindElement(By.XPath("//*[@id='Land Summary']/tbody"));
                        IList <IWebElement> TRlandsummary = landsummary.FindElements(By.TagName("tr"));
                        IList <IWebElement> THlandsummary = landsummary.FindElements(By.TagName("th"));
                        IList <IWebElement> TDlandsummary;
                        foreach (IWebElement row in TRlandsummary)
                        {
                            TDlandsummary = row.FindElements(By.TagName("td"));
                            if (TDlandsummary.Count != 0 && !row.Text.Contains("Land Description") && row.Text.Trim() != "")
                            {
                                string LandInfodetails = TDlandsummary[0].Text + "~" + TDlandsummary[1].Text + "~" + TDlandsummary[2].Text + "~" + TDlandsummary[3].Text + "~" + TDlandsummary[4].Text + "~" + TDlandsummary[5].Text + "~" + TDlandsummary[6].Text + "~" + TDlandsummary[7].Text + "~" + TDlandsummary[8].Text + "~" + TDlandsummary[9].Text;
                                gc.insert_date(orderNumber, parcelNumber, 1869, LandInfodetails, 1, DateTime.Now);
                            }
                        }
                    }
                    catch { }

                    //  Permits
                    string permittitle = "", permitvalue = "";
                    try
                    {
                        driver.FindElement(By.XPath("//*[@id='sidemenu']/li[24]/a/span")).Click();
                        Thread.Sleep(4000);
                        gc.CreatePdf(orderNumber, parcelNumber, "Permits", driver, "IL", "Lake");
                    }
                    catch { }
                    try
                    {
                        IWebElement         Permitsdetails   = driver.FindElement(By.XPath("//*[@id='Permit Details']/tbody"));
                        IList <IWebElement> TRPermitsdetails = Permitsdetails.FindElements(By.TagName("tr"));
                        IList <IWebElement> THPermitsdetails = Permitsdetails.FindElements(By.TagName("th"));
                        IList <IWebElement> TDPermitsdetails;
                        foreach (IWebElement row in TRPermitsdetails)
                        {
                            TDPermitsdetails = row.FindElements(By.TagName("td"));
                            if (THPermitsdetails.Count != 0 && row.Text.Trim() != "")
                            {
                                permittitle += THPermitsdetails[0].Text + "~";
                                permitvalue += THPermitsdetails[1].Text.Replace("Tax Year", "").Replace("\r\n", "") + "~";
                            }
                            if (TDPermitsdetails.Count != 0 && row.Text.Trim() != "")
                            {
                                permittitle += TDPermitsdetails[0].Text.Replace(":", "") + "~";
                                permitvalue += TDPermitsdetails[1].Text + "~";
                            }
                        }


                        DBconnection dbconn = new DBconnection();
                        dbconn.ExecuteQuery("update data_field_master set Data_Fields_Text='" + permittitle.Remove(permittitle.Length - 1, 1) + "' where Id = '" + 1870 + "'");
                        gc.insert_date(orderNumber, parcelNumber, 1870, permitvalue.Remove(permitvalue.Length - 1, 1), 1, DateTime.Now);
                    }
                    catch { }
                    try
                    {
                        IWebElement         Permits   = driver.FindElement(By.XPath("//*[@id='frmMain']/div[3]/div/div/table/tbody/tr/td/table/tbody/tr[2]/td/div/table/tbody"));
                        IList <IWebElement> TRPermits = Permits.FindElements(By.TagName("tr"));
                        IList <IWebElement> THPermits = Permits.FindElements(By.TagName("th"));
                        IList <IWebElement> TDPermits;
                        foreach (IWebElement row in TRPermits)
                        {
                            TDPermits = row.FindElements(By.TagName("td"));

                            if (TDPermits.Count != 0 && !row.Text.Contains("Land Description") && row.Text.Contains("No Data") && row.Text.Trim() != "")
                            {
                                string LandInfodetails = TDPermits[0].Text;
                                gc.insert_date(orderNumber, parcelNumber, 1870, LandInfodetails, 1, DateTime.Now);
                            }
                        }
                    }
                    catch { }

                    // Property Transfer History

                    try
                    {
                        driver.FindElement(By.XPath("//*[@id='sidemenu']/li[27]/a/span")).Click();
                        Thread.Sleep(4000);
                        gc.CreatePdf(orderNumber, parcelNumber, "Property Transfer History", driver, "IL", "Lake");
                    }
                    catch { }

                    try
                    {
                        IWebElement         ProHistory   = driver.FindElement(By.XPath("//*[@id='Sales']/tbody"));
                        IList <IWebElement> TRProHistory = ProHistory.FindElements(By.TagName("tr"));
                        IList <IWebElement> THProHistory = ProHistory.FindElements(By.TagName("th"));
                        IList <IWebElement> TDProHistory;
                        foreach (IWebElement row in TRProHistory)
                        {
                            TDProHistory = row.FindElements(By.TagName("td"));
                            if (TDProHistory.Count != 0 && !row.Text.Contains("Sale Date") && row.Text.Trim() != "")
                            {
                                string LandInfodetails = TDProHistory[0].Text + "~" + TDProHistory[1].Text + "~" + TDProHistory[2].Text + "~" + TDProHistory[3].Text + "~" + TDProHistory[4].Text + "~" + TDProHistory[5].Text;
                                gc.insert_date(orderNumber, parcelNumber, 1871, LandInfodetails, 1, DateTime.Now);
                            }
                        }
                    }
                    catch { }

                    for (int i = 0; i < 3; i++)
                    {
                        try
                        {
                            string        Tyear = driver.FindElement(By.XPath("//*[@id='DTLNavigator_ddTaxYear']")).Text;
                            IWebElement   Iyear = driver.FindElement(By.Id("DTLNavigator_ddTaxYear"));
                            SelectElement Iyer  = new SelectElement(Iyear);
                            Iyer.SelectByValue(taxyear.ToString());
                            Thread.Sleep(4000);
                        }
                        catch { }
                        // Taxes Due Details
                        try
                        {
                            driver.FindElement(By.XPath("//*[@id='sidemenu']/li[6]/a/span")).Click();
                            Thread.Sleep(2000);
                            gc.CreatePdf(orderNumber, parcelNumber, "Tax Due" + taxyear, driver, "IL", "Lake");
                        }
                        catch { }


                        try
                        {
                            IWebElement         TaxBill   = driver.FindElement(By.XPath("//*[@id='Taxes Due Treasurer']/tbody"));
                            IList <IWebElement> TRTaxBill = TaxBill.FindElements(By.TagName("tr"));
                            IList <IWebElement> THTaxBill = TaxBill.FindElements(By.TagName("th"));
                            IList <IWebElement> TDTaxBill;
                            foreach (IWebElement row in TRTaxBill)
                            {
                                TDTaxBill = row.FindElements(By.TagName("td"));
                                if (TDTaxBill.Count != 0 && !row.Text.Contains("Tax Year") && row.Text.Trim() != "")
                                {
                                    string TaxDueDetails = TDTaxBill[0].Text + "~" + TDTaxBill[1].Text + "~" + TDTaxBill[2].Text + "~" + TDTaxBill[3].Text + "~" + TDTaxBill[4].Text + "~" + TDTaxBill[5].Text + "~" + TDTaxBill[6].Text + "~" + TDTaxBill[7].Text + "~" + TDTaxBill[8].Text;
                                    gc.insert_date(orderNumber, parcelNumber, 1873, TaxDueDetails, 1, DateTime.Now);
                                }
                            }
                        }
                        catch { }
                        taxyear--;
                    }

                    TaxTime = DateTime.Now.ToString("HH:mm:ss");

                    LastEndTime = DateTime.Now.ToString("HH:mm:ss");
                    gc.insert_TakenTime(orderNumber, "IL", "Lake", StartTime, AssessmentTime, TaxTime, CitytaxTime, LastEndTime);

                    driver.Quit();
                    gc.mergpdf(orderNumber, "IL", "Lake");
                    return("Data Inserted Successfully");
                }

                catch (Exception ex)
                {
                    driver.Quit();
                    throw ex;
                }
            }
        }
        public string FTP_Eldarado(string Address, string account, string parcelNumber, string ownername, string searchType, string orderno, string directParcel)
        {
            GlobalClass.global_orderNo             = orderno;
            HttpContext.Current.Session["orderNo"] = orderno;
            var driverService = PhantomJSDriverService.CreateDefaultService();

            driverService.HideCommandPromptWindow = true;
            using (driver = new PhantomJSDriver())
            {
                int           multicount = 0;
                string        StartTime = "", AssessmentTime = "", TaxTime = "", CitytaxTime = "", LastEndTime = "";
                string        multiparcel = "", MapTaxLot = "", SitusAddress = "", LegalDescription = "";
                IWebElement   PropertyValidation;
                string[]      stringSeparators1 = new string[] { "\r\n" };
                List <string> listurl           = new List <string>();

                List <string> Columnurl = new List <string>();
                string        Date      = "";
                Date = DateTime.Now.ToString("M/d/yyyy");
                try
                {
                    StartTime = DateTime.Now.ToString("HH:mm:ss");
                    //if (searchType == "titleflex")
                    //{
                    //    gc.TitleFlexSearch(orderno, parcelNumber, ownername, Address, "CA", "El Dorado");

                    //    parcelNumber = GlobalClass.global_parcelNo;
                    //    if (GlobalClass.TitleFlex_Search == "Yes")
                    //    {
                    //        driver.Quit();
                    //        return "MultiParcel";
                    //    }
                    //    searchType = "parcel";
                    //}
                    if (searchType == "address")
                    {
                        driver.Navigate().GoToUrl("https://common3.mptsweb.com/MBC/eldorado/tax/search");
                        IWebElement   PropertyInformation       = driver.FindElement(By.Id("SearchVal"));
                        SelectElement PropertyInformationSelect = new SelectElement(PropertyInformation);
                        PropertyInformationSelect.SelectByValue("situs");
                        driver.FindElement(By.Id("SearchValue")).SendKeys(Address);
                        driver.FindElement(By.Id("SearchSubmit")).Click();
                        Thread.Sleep(2000);
                        IWebElement Addresstax = driver.FindElement(By.XPath("//*[@id='ResultDiv']/div"));
                        string      Firststep = ""; int Max = 0;
                        try
                        {
                            IWebElement         PropertyIteamTable = driver.FindElement(By.XPath("//*[@id='ResultDiv']/div/div"));
                            IList <IWebElement> PropertyIeamRow    = PropertyIteamTable.FindElements(By.TagName("p"));

                            foreach (IWebElement Property in PropertyIeamRow)
                            {
                                if (PropertyIeamRow.Count != 0 & !Property.Text.Contains("View Details"))
                                {
                                    string   Parcelnumber = GlobalClass.After(Property.Text, "Fee Parcel :").Trim();
                                    string[] splitparcel  = Parcelnumber.Split('-');
                                    string   split3       = splitparcel[2].Substring(1, 2);
                                    parcelNumber = splitparcel[0] + splitparcel[1] + split3;
                                    string Addressta   = gc.Between(Property.Text, "Address :", "Year :");
                                    string Yearpar     = gc.Between(Property.Text, "Year :", "TRA :");
                                    string roallcast   = gc.Between(Property.Text, "Roll Cat. :", "Fee Parcel :");
                                    string Multiresult = "~" + Addressta + "~" + Yearpar + "~" + roallcast;
                                    gc.insert_date(orderno, Parcelnumber, 360, Multiresult, 1, DateTime.Now);
                                    Max++;
                                }
                            }
                            if (Max == 1)
                            {
                                searchType = "parcel";
                            }
                            if (Max > 1 & Max < 26)
                            {
                                HttpContext.Current.Session["multiParcel_CAEldorado"] = "Yes";
                                gc.CreatePdf_WOP(orderno, "MultyAddressSearch", driver, "CA", "El Dorado");
                                driver.Quit();
                                return("MultiParcel");
                            }
                            if (Max > 25)
                            {
                                HttpContext.Current.Session["multiParcel_CAEldorado_Count"] = "Maximum";
                                gc.CreatePdf_WOP(orderno, "MultyAddressSearch", driver, "CA", "El Dorado");
                                driver.Quit();
                                return("Maximum");
                            }
                        }
                        catch { }
                        try
                        {
                            IWebElement INodata = driver.FindElement(By.Id("ResultDiv"));
                            if (INodata.Text.Contains("no matching records were found"))
                            {
                                HttpContext.Current.Session["Nodata_CAEldorado"] = "Zero";
                                driver.Quit();
                                return("No Data Found");
                            }
                        }
                        catch { }
                    }
                    if (searchType == "parcel")
                    {
                        driver.Navigate().GoToUrl("http://main.edcgov.us/CGI/WWB012/WWM400/A");

                        Thread.Sleep(3000);
                        var SerachCategory = driver.FindElement(By.XPath("//*[@id='T']"));
                        var selectElement1 = new SelectElement(SerachCategory);
                        selectElement1.SelectByText("Secured Parcel Number (999-999-99)");
                        Thread.Sleep(3000);

                        driver.FindElement(By.XPath("//*[@id='K']")).SendKeys(parcelNumber.Trim());
                        gc.CreatePdf(orderno, parcelNumber, "Account Number Search", driver, "CA", "El Dorado");
                        Thread.Sleep(1000);


                        driver.FindElement(By.XPath("/html/body/form/table/tbody/tr/td/span/input")).SendKeys(Keys.Enter);
                        Thread.Sleep(3000);
                        gc.CreatePdf(orderno, parcelNumber, "Parcel Search", driver, "CA", "El Dorado");
                    }
                    else if (searchType == "ownername")
                    {
                        driver.Navigate().GoToUrl("http://main.edcgov.us/CGI/WWB012/WWM400/A");

                        Thread.Sleep(3000);
                        var SerachCategory = driver.FindElement(By.XPath("//*[@id='T']"));
                        var selectElement1 = new SelectElement(SerachCategory);
                        selectElement1.SelectByText("Owner's Name (Last First) or (Company)");
                        Thread.Sleep(3000);
                        gc.CreatePdf_WOP(orderno, "ownerNameSearch", driver, "CA", "El Dorado");
                        driver.FindElement(By.XPath("//*[@id='K']")).SendKeys(ownername.Trim());
                        Thread.Sleep(1000);
                        try
                        {
                            IWebElement   ImultiCount = driver.FindElement(By.XPath("//*[@id='Q']"));
                            SelectElement selectCount = new SelectElement(ImultiCount);
                            selectCount.SelectByText("50");
                        }
                        catch { }
                        driver.FindElement(By.XPath("/html/body/form/table/tbody/tr/td/span/input")).SendKeys(Keys.Enter);
                        Thread.Sleep(3000);
                        try
                        {
                            string strmultiCount = driver.FindElement(By.XPath("/html/body/p[2]")).Text;
                            string strMcount     = gc.Between(strmultiCount, "Record Count = ", " of");
                            if (Convert.ToInt32(strMcount) > 25)
                            {
                                HttpContext.Current.Session["multiParcel_CAEldorado_Count"] = "Maximum";
                                return("Maximum");
                            }
                        }
                        catch { }
                        gc.CreatePdf_WOP(orderno, "ownerNameSearchResult", driver, "CA", "El Dorado");
                        IWebElement         MuliparcTB = driver.FindElement(By.XPath("//*[@id='idWWM983']/tbody"));
                        IList <IWebElement> MuliparcTR = MuliparcTB.FindElements(By.TagName("tr"));
                        if (MuliparcTR.Count() > 2)
                        {
                            IList <IWebElement> MuliparcTD;

                            foreach (IWebElement row1 in MuliparcTR)
                            {
                                MuliparcTD = row1.FindElements(By.TagName("td"));
                                if (MuliparcTD.Count != 0 && multicount < 25)
                                {
                                    parcelNumber = MuliparcTD[1].Text;
                                    ownername    = MuliparcTD[2].Text;

                                    string Multipar = ownername + "~" + "~" + "~";
                                    gc.insert_date(orderno, parcelNumber, 360, Multipar, 1, DateTime.Now);
                                    HttpContext.Current.Session["multiParcel_CAEldorado"] = "Yes";
                                    multicount++;
                                }
                            }
                            driver.Quit();
                            return("MultiParcel");
                        }



                        //gc.CreatePdf(orderno, parcelNumber, "Account Number Search Result", driver, "OR", "Marion");
                    }
                    else if (searchType == "block")
                    {
                        driver.Navigate().GoToUrl("http://main.edcgov.us/CGI/WWB012/WWM400/A");

                        Thread.Sleep(3000);
                        var SerachCategory = driver.FindElement(By.XPath("//*[@id='T']"));
                        var selectElement1 = new SelectElement(SerachCategory);
                        selectElement1.SelectByText("Owner's Name (Last First) or (Company)");
                        Thread.Sleep(3000);
                        gc.CreatePdf_WOP(orderno, "Account Number Search", driver, "CA", "El Dorado");
                        driver.FindElement(By.XPath("//*[@id='K']")).SendKeys(ownername.Trim());
                        Thread.Sleep(1000);
                        try
                        {
                            IWebElement   ImultiCount = driver.FindElement(By.XPath("//*[@id='Q']"));
                            SelectElement selectCount = new SelectElement(ImultiCount);
                            selectCount.SelectByText("50");
                        }
                        catch { }
                        driver.FindElement(By.XPath("/html/body/form/table/tbody/tr/td/span/input")).SendKeys(Keys.Enter);
                        Thread.Sleep(3000);
                        try
                        {
                            string strmultiCount = driver.FindElement(By.XPath("/html/body/p[2]")).Text;
                            string strMcount     = gc.Between(strmultiCount, "Record Count = ", " of");
                            if (Convert.ToInt32(strMcount) > 25)
                            {
                                HttpContext.Current.Session["multiParcel_CAEldorado_Count"] = "Maximum";
                                return("Maximum");
                            }
                        }
                        catch { }
                        gc.CreatePdf_WOP(orderno, "Account Number Search Result", driver, "CA", "El Dorado");
                        IWebElement         MuliparcTB = driver.FindElement(By.XPath("/[@id='idWWM983']/tbody"));
                        IList <IWebElement> MuliparcTR = MuliparcTB.FindElements(By.TagName("tr"));
                        if (MuliparcTR.Count() > 2)
                        {
                            IList <IWebElement> MuliparcTD;

                            foreach (IWebElement row1 in MuliparcTR)
                            {
                                MuliparcTD = row1.FindElements(By.TagName("td"));
                                if (MuliparcTD.Count != 0 && multicount < 25)
                                {
                                    parcelNumber = MuliparcTD[1].Text;
                                    ownername    = MuliparcTD[2].Text;

                                    string Multipar = ownername;
                                    gc.insert_date(orderno, parcelNumber, 360, Multipar, 1, DateTime.Now);

                                    HttpContext.Current.Session["multiParcel_CAEldorado"] = "Yes";
                                    multicount++;
                                }
                            }
                            driver.Quit();
                            return("MultiParcel");
                        }
                    }

                    try
                    {
                        IWebElement INodata = driver.FindElement(By.XPath("/html/body/p[2]"));
                        if (INodata.Text.Contains("No Records Found"))
                        {
                            HttpContext.Current.Session["Nodata_CAEldorado"] = "Zero";
                            driver.Quit();
                            return("No Data Found");
                        }
                    }
                    catch { }

                    // assessment details
                    string YearBuilt = "", Abstractcode = "", Reference = "", SubdivisionTractNumber = "", SubdivisionTractName = "", TaxRateArea = "", City = "", BulData = "";
                    Reference = driver.FindElement(By.XPath("//*[@id='idWWM983']/tbody/tr[2]/td[3]/span")).Text.Trim();
                    string chkpa1 = "";
                    string chkpa  = driver.FindElement(By.XPath("//*[@id='idWWM983']/tbody/tr[2]/td[2]/a")).Text;
                    try
                    {
                        chkpa1 = driver.FindElement(By.XPath("//*[@id='idWWM983']/tbody/tr[3]/td[2]/a")).Text;
                    }
                    catch { }
                    driver.FindElement(By.XPath("//*[@id='idWWM983']/tbody/tr[2]/td[2]/a")).SendKeys(Keys.Enter);
                    Thread.Sleep(1000);
                    gc.CreatePdf(orderno, parcelNumber, "Assessment Details", driver, "CA", "El Dorado");
                    parcelNumber = driver.FindElement(By.XPath("//*[@id='Top']")).Text.Replace("Parcel Number ", "").Trim();
                    IWebElement         YearB  = driver.FindElement(By.XPath("/html/body/table[8]/tbody"));
                    IList <IWebElement> YearTR = YearB.FindElements(By.TagName("tr"));
                    IList <IWebElement> YearTD;

                    foreach (IWebElement row1 in YearTR)
                    {
                        YearTD = row1.FindElements(By.TagName("td"));
                        if (row1.Text.Contains("Year Built"))
                        {
                            if (YearTD.Count != 0)
                            {
                                YearBuilt = YearTD[1].Text;
                            }
                        }
                    }
                    try
                    {
                        YearB  = driver.FindElement(By.XPath("/html/body/table[9]/tbody"));
                        YearTR = YearB.FindElements(By.TagName("tr"));


                        foreach (IWebElement row1 in YearTR)
                        {
                            YearTD = row1.FindElements(By.TagName("td"));
                            if (row1.Text.Contains("Year Built"))
                            {
                                if (YearTD.Count != 0)
                                {
                                    YearBuilt = YearTD[1].Text;
                                }
                            }
                        }
                    }
                    catch { }
                    string OW1 = "", Ow2 = "", Ow3 = "";
                    OW1 = driver.FindElement(By.XPath("/html/body")).Text;

                    ownername = gc.Between(OW1, "Current Property Owners\r\n", "\r\nProperty Description Values Event List Characteristics Background Top of Page").Trim();

                    ownername = ownername.Replace("\r\n", "");



                    BulData = driver.FindElement(By.XPath("//*[@id='PROPDESC']")).Text;

                    Reference = gc.Between(BulData, "Reference:", "For Zoning,").Trim();

                    try { Abstractcode = gc.Between(BulData, "Abstract code:", "Reference:").Trim(); }
                    catch { }
                    if (Abstractcode.Contains("G.I.S. Map"))
                    {
                        Abstractcode = "";
                    }
                    //Reference = WebDriverTest.After(BulData, "Reference:").Trim();
                    //var FRefSplit = Reference.Split('(');
                    //Reference = FRefSplit[0];

                    try
                    {
                        SubdivisionTractNumber = gc.Between(BulData, "Subdivision Tract Number:", "Subdivision Tract Name:").Trim();
                        SubdivisionTractName   = gc.Between(BulData, "Subdivision Tract Name: ", "Subdivision map").Trim();
                    }
                    catch { }

                    if (SubdivisionTractName == "")
                    {
                        try
                        {
                            SubdivisionTractName = gc.Between(BulData, "Subdivision Tract Name: ", "Timeshare Interval Id:").Trim();
                        }
                        catch { }
                    }

                    TaxRateArea = WebDriverTest.After(BulData, "Tax Rate Area:").Trim();
                    var Citysplit = TaxRateArea.Split(' ');
                    TaxRateArea = Citysplit[0];
                    City        = WebDriverTest.After(BulData, Citysplit[0]).Trim();

                    string ProperTyDetail = ownername + "~" + Abstractcode + "~" + Reference + "~" + SubdivisionTractNumber + "~" + SubdivisionTractName + "~" + TaxRateArea + "~" + City + "~" + YearBuilt;
                    gc.insert_date(orderno, parcelNumber, 260, ProperTyDetail, 1, DateTime.Now);
                    string Column = "";

                    string TaxablePropertyValues20172018 = "", Land = "", LandTotal = "", ImprovementStructures = "", ImprovementTotal = "", TotalRoll = "", NetRoll = "";
                    string LandProp8 = "", ImporevePro8 = "", Exemption = "";
                    TaxablePropertyValues20172018 = driver.FindElement(By.XPath("/html/body/table[4]/caption")).Text.Trim().Replace("\r\n", " ");
                    IWebElement         MultiAssessTB = driver.FindElement(By.XPath("/html/body/table[4]/tbody"));
                    IList <IWebElement> MultiAssessTR = MultiAssessTB.FindElements(By.TagName("tr"));
                    IList <IWebElement> MultiAssessTD;

                    foreach (IWebElement row1 in MultiAssessTR)
                    {
                        MultiAssessTD = row1.FindElements(By.TagName("td"));
                        if (MultiAssessTD.Count != 0)
                        {
                            Column = MultiAssessTD[0].Text + "~" + Column;
                            Land   = MultiAssessTD[1].Text + "~" + Land;
                        }
                    }
                    Column = Column + "dsds";
                    Land   = Land + "dsds";
                    Column = Column.Replace("~dsds", "");
                    Land   = Land.Replace("~dsds", "");
                    //if (listurl.Count == 4)
                    //{
                    //    Land = listurl[0];
                    //    LandTotal = listurl[1];
                    //    //   ImprovementStructures = listurl[2];
                    //    //  ImprovementTotal = listurl[3];
                    //    TotalRoll = listurl[2];
                    //    NetRoll = listurl[3];
                    //}
                    //else
                    //{
                    //    Land = listurl[0];
                    //    LandTotal = listurl[1];
                    //    ImprovementStructures = listurl[2];
                    //    ImprovementTotal = listurl[3];
                    //    TotalRoll = listurl[4];
                    //    NetRoll = listurl[5];
                    //}

                    DBconnection dbconn = new DBconnection();



                    dbconn.ExecuteQuery("update  data_field_master set Data_Fields_Text='" + Column + "' where Id = '" + 261 + "'");


                    string Assessment = Land;
                    gc.insert_date(orderno, parcelNumber, 261, Assessment, 1, DateTime.Now);
                    AssessmentTime = DateTime.Now.ToString("HH:mm:ss");

                    driver.Navigate().GoToUrl("https://taxcollector.edcgov.us/GetAPN.aspx");
                    Thread.Sleep(2000);
                    driver.FindElement(By.XPath("//*[@id='btnawoc']")).Click();
                    Thread.Sleep(2000);
                    driver.FindElement(By.XPath("//*[@id='form1']/table[2]/tbody/tr[2]/td[1]/a/img")).Click();
                    Thread.Sleep(2000);
                    driver.FindElement(By.XPath("//*[@id='txtAPN']")).SendKeys(parcelNumber);
                    gc.CreatePdf(orderno, parcelNumber, "Input Passed Tax Search", driver, "CA", "El Dorado");
                    Thread.Sleep(1000);



                    //Tax bill download....
                    IWebElement         SelectOption = driver.FindElement(By.Id("ddList"));
                    IList <IWebElement> Select       = SelectOption.FindElements(By.TagName("option"));
                    List <string>       option       = new List <string>();
                    int Check = 0;
                    foreach (IWebElement Op in Select)
                    {
                        if (Check <= 2)
                        {
                            option.Add(Op.Text);
                        }
                        Check++;
                    }

                    //load chrome driver...
                    //IWebDriver chDriver = new ChromeDriver();
                    var chromeOptions     = new ChromeOptions();
                    var downloadDirectory = ConfigurationManager.AppSettings["AutoPdf"];

                    chromeOptions.AddUserProfilePreference("download.default_directory", downloadDirectory);
                    chromeOptions.AddUserProfilePreference("download.prompt_for_download", false);
                    chromeOptions.AddUserProfilePreference("disable-popup-blocking", "true");

                    var chDriver = new ChromeDriver(chromeOptions);
                    try
                    {
                        chDriver.Navigate().GoToUrl("https://taxcollector.edcgov.us/GetAPN.aspx");
                        chDriver.FindElement(By.XPath("//*[@id='btnawoc']")).Click();
                        chDriver.FindElement(By.XPath("//*[@id='form1']/table[2]/tbody/tr[2]/td[1]/a/img")).Click();
                        chDriver.FindElement(By.XPath("//*[@id='txtAPN']")).SendKeys(parcelNumber);

                        foreach (string item in option)
                        {
                            var SelectAddress    = chDriver.FindElement(By.Id("ddList"));
                            var SelectAddressTax = new SelectElement(SelectAddress);
                            SelectAddressTax.SelectByText(item);
                            chDriver.FindElement(By.XPath("//*[@id='btnView']")).Click();
                            Thread.Sleep(9000);

                            string yr       = GlobalClass.Before(item, "-");
                            string fileName = "EDC_TaxBill_Copy_for_Secured_APN_" + parcelNumber + "_Year_" + yr + ".pdf";
                            gc.AutoDownloadFile(orderno, parcelNumber, "El Dorado", "CA", fileName);
                        }
                        chDriver.Quit();
                    }

                    catch (Exception ex)
                    {
                        chDriver.Quit();
                        GlobalClass.LogError(ex, orderno);
                    }


                    driver.FindElement(By.XPath("//*[@id='btnSecSum']")).SendKeys(Keys.Enter);
                    Thread.Sleep(1000);


                    gc.CreatePdf(orderno, parcelNumber, "Tax History Detail", driver, "CA", "El Dorado");
                    string Description = "", TaxAuthority = "360 Fair Lane, Placerville, CA 95667 (530) 621-5800,Fax: (530) 642-8870", Grand_Total_Secured_Taxes_Due = "", Fisrt_Instalment = "", Due = "", Default_Due = "", Year = "", Second_Instalment = "", Default_Bill = "", Total = "", Total_Default_Due = "";


                    //*[@id="main"]/table[1]/tbody/tr[1]/td/table[4]/tbody

                    string taxsum = "";
                    try
                    {
                        IWebElement         tbmulti = driver.FindElement(By.XPath("//*[@id='main']/table[1]/tbody/tr[1]/td/table[4]/tbody"));
                        IList <IWebElement> TRmulti = tbmulti.FindElements(By.TagName("tr"));
                        IList <IWebElement> TDmulti;
                        foreach (IWebElement row in TRmulti)
                        {
                            if (!row.Text.Contains("Description"))
                            {
                                TDmulti = row.FindElements(By.TagName("td"));
                                if (TDmulti.Count == 8)
                                {
                                    taxsum = TDmulti[0].Text + "~" + TDmulti[1].Text + "~" + TDmulti[2].Text + "~" + TDmulti[3].Text + "~" + TDmulti[4].Text + "~" + TDmulti[5].Text + "~" + TDmulti[6].Text;
                                    gc.insert_date(orderno, parcelNumber, 265, taxsum, 1, DateTime.Now);
                                }
                                if (TDmulti.Count == 4)
                                {
                                    taxsum = "Totals" + "~" + "" + "~" + "" + "~" + TDmulti[1].Text + "~" + TDmulti[2].Text + "~" + "" + "~" + "";
                                    gc.insert_date(orderno, parcelNumber, 265, taxsum, 1, DateTime.Now);
                                }
                                if (TDmulti.Count == 3)
                                {
                                    taxsum = "Grand Total Secured Taxes Due" + "~" + "" + "~" + "" + "~" + TDmulti[1].Text + "~" + "" + "~" + "" + "~" + "";
                                    gc.insert_date(orderno, parcelNumber, 265, taxsum, 1, DateTime.Now);
                                }
                            }
                        }
                    }
                    catch { }

                    //IWebElement CurrentTaxHistoryTB1 = driver.FindElement(By.XPath("//*[@id='main']/table[1]/tbody/tr[1]/td/table[4]/tbody"));
                    //IList<IWebElement> CurrentTaxHistoryTR1 = CurrentTaxHistoryTB1.FindElements(By.TagName("tr"));
                    //IList<IWebElement> CurrentTaxHistoryTD1;
                    //int rowcount = CurrentTaxHistoryTR1.Count;
                    //int count = 0;
                    //foreach (IWebElement row1 in CurrentTaxHistoryTR1)
                    //{

                    //    CurrentTaxHistoryTD1 = row1.FindElements(By.TagName("td"));
                    //    if (CurrentTaxHistoryTD1.Count != 0 && row1.Text != "" && !row1.Text.Contains("Current Owner") && !row1.Text.Contains("Description"))
                    //    {
                    //        if (count < rowcount - 2)
                    //        {
                    //            //Description~Fisrt_Instalment~Second_Instalment~Due~Default_Due~Year~Default_Bill~Total~Total_Default_Due~Grand_Total_Secured_Taxes_Due
                    //            taxsum = CurrentTaxHistoryTD1[0].Text + "~" + CurrentTaxHistoryTD1[1].Text + "~" + CurrentTaxHistoryTD1[2].Text + "~" + CurrentTaxHistoryTD1[3].Text + "~" + CurrentTaxHistoryTD1[4].Text + "~" + CurrentTaxHistoryTD1[5].Text + "~" + CurrentTaxHistoryTD1[6].Text;
                    //            gc.insert_date(orderno, parcelNumber, 265, taxsum, 1, DateTime.Now);
                    //        }
                    //        if (count == rowcount - 2)
                    //        {
                    //            taxsum = "Totals" + "~" + "" + "~" + "" + "~" + CurrentTaxHistoryTD1[1].Text + "~" + CurrentTaxHistoryTD1[2].Text + "~" + "" + "~" + "";
                    //            gc.insert_date(orderno, parcelNumber, 265, taxsum, 1, DateTime.Now);
                    //        }
                    //        if (count == rowcount - 1)
                    //        {
                    //            taxsum = "Grand Total Secured Taxes Due" + "~" + "" + "~" + "" + "~" + CurrentTaxHistoryTD1[1].Text + "~" + "" + "~" + "" + "~" + "";
                    //            gc.insert_date(orderno, parcelNumber, 265, taxsum, 1, DateTime.Now);
                    //        }
                    //    }

                    //    count++;
                    //}


                    try
                    {
                        IWebElement         CurrentTaxHistoryTB = driver.FindElement(By.XPath("//*[@id='main']/table[1]/tbody/tr[1]/td/table[4]/tbody"));
                        IList <IWebElement> CurrentTaxHistoryTR = CurrentTaxHistoryTB.FindElements(By.TagName("tr"));
                        IList <IWebElement> CurrentTaxHistoryTD;
                        IList <IWebElement> CurrentTaxHistoryTA;
                        listurl.Clear();
                        foreach (IWebElement row1 in CurrentTaxHistoryTR)
                        {
                            CurrentTaxHistoryTD = row1.FindElements(By.TagName("td"));
                            if (CurrentTaxHistoryTD.Count != 0 && CurrentTaxHistoryTD.Count != 2 && CurrentTaxHistoryTD.Count != 1 && CurrentTaxHistoryTD[0].Text.Trim() != "Description")
                            {
                                foreach (IWebElement row in CurrentTaxHistoryTD)
                                {
                                    CurrentTaxHistoryTA = row.FindElements(By.TagName("a"));
                                    if (CurrentTaxHistoryTA.Count != 0)
                                    {
                                        listurl.Add(CurrentTaxHistoryTA[0].GetAttribute("href"));
                                    }
                                }
                                foreach (string URL in listurl)

                                {
                                    gc.downloadfile(URL, orderno, parcelNumber, "Tax_Bill" + Description, "CA", "El Dorado");
                                }
                            }
                        }
                    }
                    catch { }

                    try
                    {
                        driver.FindElement(By.XPath("//*[@id='MainContent_menus']/table/tbody/tr[2]/td[2]/a/img")).Click();
                        Thread.Sleep(2000);
                    }
                    catch { }
                    try
                    {
                        gc.CreatePdf(orderno, parcelNumber, "Payment History Detail", driver, "CA", "El Dorado");
                        string PaymentHistoryforAPN = "", DatePaid = "", Installment = "", Amount = "";
                        PaymentHistoryforAPN = driver.FindElement(By.XPath("//*[@id='menus']/table/tbody/tr[2]/td[2]/h2[1]")).Text;
                        var Paysplit = PaymentHistoryforAPN.Split(':');
                        PaymentHistoryforAPN = Paysplit[1];
                        IWebElement         CurrentPayHistoryTB = driver.FindElement(By.XPath("//*[@id='form1']/table/tbody/tr[3]/td/table/tbody"));
                        IList <IWebElement> CurrentPayHistoryTR = CurrentPayHistoryTB.FindElements(By.TagName("tr"));
                        IList <IWebElement> CurrentPayHistoryTD;

                        foreach (IWebElement row1 in CurrentPayHistoryTR)
                        {
                            CurrentPayHistoryTD = row1.FindElements(By.TagName("td"));
                            if (CurrentPayHistoryTD.Count != 0 && CurrentPayHistoryTD.Count != 1 && CurrentPayHistoryTD[0].Text.Trim() != "Date Paid")
                            {
                                DatePaid     = CurrentPayHistoryTD[0].Text;
                                Description  = CurrentPayHistoryTD[1].Text;
                                Default_Bill = CurrentPayHistoryTD[2].Text;
                                Installment  = CurrentPayHistoryTD[3].Text;
                                Year         = CurrentPayHistoryTD[4].Text;
                                Amount       = CurrentPayHistoryTD[5].Text;

                                string CurrenttaxHistory = PaymentHistoryforAPN + "~" + DatePaid + "~" + Description + "~" + Default_Bill + "~" + Installment + "~" + Year + "~" + Amount;
                                gc.insert_date(orderno, parcelNumber, 264, CurrenttaxHistory, 1, DateTime.Now);
                            }
                        }
                    }
                    catch { }

                    TaxTime = DateTime.Now.ToString("HH:mm:ss");

                    LastEndTime = DateTime.Now.ToString("HH:mm:ss");

                    gc.insert_TakenTime(orderno, "CA", "El Dorado", StartTime, AssessmentTime, TaxTime, CitytaxTime, LastEndTime);


                    driver.Quit();
                    gc.mergpdf(orderno, "CA", "El Dorado");

                    //gc.MMREM_Template(orderno,parcelNumber,"",driver,"CA", "El Dorado","95","");
                    return("Data Inserted Successfully");
                }

                catch (Exception ex)
                {
                    driver.Quit();
                    GlobalClass.LogError(ex, orderno);
                    throw ex;
                }
            }
        }
        public string FTP_AndersonSC(string streetno, string unitno, string ownername, string parcelNumber, string searchType, string orderNumber, string directParcel)
        {
            GlobalClass.global_orderNo             = orderNumber;
            HttpContext.Current.Session["orderNo"] = orderNumber;
            GlobalClass.global_parcelNo            = parcelNumber;
            string StartTime = "", AssessmentTime = "", TaxTime = "", CitytaxTime = "", LastEndTime = "";
            string Parcel_number = "", Tax_Authority = "", As_of = "", Total_Due = "", addresshref = "";
            //request.UseDefaultCredentials = true;
            //var driverService = PhantomJSDriverService.CreateDefaultService();
            //driverService.HideCommandPromptWindow = true;
            //driver = new ChromeDriver();
            var option = new ChromeOptions();

            option.AddArgument("No-Sandbox");
            using (driver = new ChromeDriver(option))
            {
                //driver = new PhantomJSDriver();
                try
                {
                    StartTime = DateTime.Now.ToString("HH:mm:ss");
                    driver.Navigate().GoToUrl("https://www.andersoncountysc.org/elected-officials/auditor/");
                    //tax Authority
                    Thread.Sleep(2000);
                    driver.FindElement(By.XPath("//*[@id='fl-accordion-5b294647a77d6-tab-0']/i")).Click();
                    Thread.Sleep(2000);
                    gc.CreatePdf_WOP(orderNumber, "tax Authority", driver, "SC", "Anderson");
                    IWebElement tax_authoritytable = driver.FindElement(By.XPath("//*[@id='fl-accordion-5b294647a77d6-panel-0']/p[1]"));
                    string      Tax_Authority1     = GlobalClass.Before(tax_authoritytable.Text, "Email").Trim();
                    IWebElement taxautho           = driver.FindElement(By.XPath("//*[@id='fl-accordion-5b294647a77d6-panel-0']/p[2]"));
                    string      Tax_Authority2     = GlobalClass.After(taxautho.Text, "p.m.").Trim();
                    Tax_Authority = Tax_Authority2 + Tax_Authority1;
                }
                catch { }
                try
                {
                    driver.Navigate().GoToUrl("https://acpass.andersoncountysc.org/real_prop_search.htm");
                    Thread.Sleep(2000);
                    gc.CreatePdf_WOP(orderNumber, "agree", driver, "SC", "Anderson");
                    driver.FindElement(By.XPath("/html/body/table[2]/tbody/tr[3]/td[2]/table/tbody/tr[8]/td/div/a/img")).Click();
                    Thread.Sleep(2000);
                    gc.CreatePdf_WOP(orderNumber, "agree1", driver, "SC", "Anderson");
                    driver.FindElement(By.XPath("/html/body/table[1]/tbody/tr[3]/td[1]/a")).SendKeys(Keys.Enter);
                    Thread.Sleep(2000);
                    gc.CreatePdf_WOP(orderNumber, "agree2", driver, "SC", "Anderson");
                    IWebElement agreeclick1  = driver.FindElement(By.XPath("/html/body/table[2]/tbody/tr[2]/td[3]/map/area[1]"));
                    string      agreeaclick1 = agreeclick1.GetAttribute("href");
                    agreeclick1.SendKeys(Keys.Enter);
                    Thread.Sleep(3000);
                    gc.CreatePdf_WOP(orderNumber, "agree3", driver, "SC", "Anderson");
                    if (searchType == "titleflex")
                    {
                        //string address = houseno + " " + direction + " " + streetname + " " + streettype;
                        gc.TitleFlexSearch(orderNumber, "", "", streetno.Trim(), "SC", "Anderson");
                        if ((HttpContext.Current.Session["TitleFlex_Search"] != null && HttpContext.Current.Session["TitleFlex_Search"].ToString() == "Yes"))
                        {
                            driver.Quit();
                            return("MultiParcel");
                        }
                        else if (HttpContext.Current.Session["titleparcel"].ToString() == "")
                        {
                            HttpContext.Current.Session["Nodata_AndersonSC"] = "Zero";
                            driver.Quit();
                            return("No Data Found");
                        }
                        parcelNumber = HttpContext.Current.Session["titleparcel"].ToString().Replace("-", "");
                        searchType   = "parcel";
                    }
                    if (searchType == "address")
                    {
                        driver.FindElement(By.XPath(" //*[@id='Search']/table/tbody/tr[5]/td[2]/div/font/font/input")).SendKeys(streetno);
                        driver.FindElement(By.Id("Sumbit")).Click();
                        Thread.Sleep(2000);

                        int a = 0;
                        gc.CreatePdf_WOP(orderNumber, "Address After click", driver, "SC", "Anderson");

                        IWebElement         Addressmultitable = driver.FindElement(By.XPath("/html/body/table[2]/tbody/tr[3]/td[1]/table[2]/tbody/tr[1]/td/form/table/tbody"));
                        IList <IWebElement> AddressmutiRow    = Addressmultitable.FindElements(By.TagName("tr"));
                        IList <IWebElement> Addressmutiid;
                        foreach (IWebElement addressmulti in AddressmutiRow)
                        {
                            Addressmutiid = addressmulti.FindElements(By.TagName("td"));
                            if (Addressmutiid.Count != 0 && !addressmulti.Text.Contains("NAME") && addressmulti.Text.Trim() != "")
                            {
                                if (Addressmutiid[4].Text.Contains(streetno.ToUpper()))
                                {
                                    IWebElement onerowaddress = Addressmutiid[1].FindElement(By.TagName("a"));
                                    addresshref = onerowaddress.GetAttribute("href");
                                    string Taxmnpnumber = Addressmutiid[2].Text;
                                    string Multiaddress = Addressmutiid[1].Text + "~" + Addressmutiid[4].Text;
                                    gc.insert_date(orderNumber, Taxmnpnumber, 909, Multiaddress, 1, DateTime.Now);
                                    a++;
                                }
                            }
                        }
                        if (a == 1)
                        {
                            driver.Navigate().GoToUrl(addresshref);
                            Thread.Sleep(2000);
                        }
                        if (a > 1 && a < 26)
                        {
                            HttpContext.Current.Session["multiparcel_Anderson"] = "Yes";
                            driver.Quit();
                            return("MultiParcel");
                        }
                        if (a > 25)
                        {
                            HttpContext.Current.Session["multiParcel_Anderson_Multicount"] = "Maximum";
                            driver.Quit();
                            return("Maximum");
                        }
                    }
                    if (searchType == "parcel")
                    {
                        driver.FindElement(By.XPath("//*[@id='Search']/table/tbody/tr[3]/td[2]/div/font/font/input")).SendKeys(parcelNumber.Replace("-", "").Substring(0, 10));
                        gc.CreatePdf_WOP(orderNumber, "Address After clickP", driver, "SC", "Anderson");
                        driver.FindElement(By.Id("Sumbit")).Click();
                        Thread.Sleep(2000);
                    }
                    if (searchType == "ownername")
                    {
                        int Own = 0;
                        driver.FindElement(By.XPath("//*[@id='Search']/table/tbody/tr[1]/td[2]/div/font/font/input")).SendKeys(ownername);
                        driver.FindElement(By.Id("Sumbit")).Click();
                        Thread.Sleep(4000);
                        try
                        {
                            gc.CreatePdf_WOP(orderNumber, "Address After clickOWN", driver, "SC", "Anderson");
                            IWebElement         Addressmultitable = driver.FindElement(By.XPath("/html/body/table[2]/tbody/tr[3]/td[1]/table[2]/tbody/tr[1]/td/form/table/tbody"));
                            IList <IWebElement> AddressmutiRow    = Addressmultitable.FindElements(By.TagName("tr"));
                            IList <IWebElement> Addressmutiid;
                            foreach (IWebElement addressmulti in AddressmutiRow)
                            {
                                Addressmutiid = addressmulti.FindElements(By.TagName("td"));
                                if (Addressmutiid.Count != 0 && !addressmulti.Text.Contains("NAME") && addressmulti.Text.Trim() != "")
                                {
                                    if (Addressmutiid[1].Text.Contains(ownername))
                                    {
                                        clickcheckbox = Addressmutiid[0];
                                        string Taxmnpnumber = Addressmutiid[2].Text;
                                        string Multiaddress = Addressmutiid[1].Text + "~" + Addressmutiid[3].Text;
                                        gc.insert_date(orderNumber, Taxmnpnumber, 909, Multiaddress, 1, DateTime.Now);
                                        Own++;
                                    }
                                }
                            }
                            if (Own == 1)
                            {
                                clickcheckbox.Click();
                                driver.FindElement(By.XPath("/html/body/table[2]/tbody/tr[3]/td[1]/table[2]/tbody/tr[1]/td/form/table/tbody/tr[27]/td/div/input[4]")).Click();
                                Thread.Sleep(2000);
                            }
                            if (Own > 1 && Own < 26)
                            {
                                HttpContext.Current.Session["multiparcel_Anderson"] = "Yes";
                                driver.Quit();
                                return("MultiParcel");
                            }
                            if (Own > 25 && AddressmutiRow.Count > 25)
                            {
                                HttpContext.Current.Session["multiParcel_Anderson_Multicount"] = "Maximum";
                                driver.Quit();
                                return("Maximum");
                            }
                        }
                        catch { }
                    }

                    try
                    {
                        IWebElement INodata = driver.FindElement(By.XPath("/html/body/table[2]/tbody/tr[3]/td[2]/table"));
                        if (INodata.Text.Contains("Provided was not found"))
                        {
                            HttpContext.Current.Session["Nodata_AndersonSC"] = "Zero";
                            driver.Quit();
                            return("No Data Found");
                        }
                        IWebElement         INodata1   = driver.FindElement(By.XPath("/html/body/table[2]/tbody/tr[3]/td[1]/table[2]"));
                        IList <IWebElement> INodataRow = INodata1.FindElements(By.TagName("tr"));
                        if (INodataRow.Count <= 1)
                        {
                            HttpContext.Current.Session["Nodata_AndersonSC"] = "Zero";
                            driver.Quit();
                            return("No Data Found");
                        }
                    }
                    catch { }


                    string Parcel_number1 = driver.FindElement(By.XPath("/html/body/table[2]/tbody/tr[3]/td[1]/table[2]/tbody/tr/td/table[1]/tbody/tr[5]/td[1]")).Text;
                    Parcel_number = Parcel_number1.Replace("-", "");
                    IWebElement propertdetailtable = driver.FindElement(By.XPath("/html/body/table[2]/tbody/tr[3]/td[1]/table[2]/tbody/tr/td/table[2]/tbody"));
                    string      owner_name         = gc.Between(propertdetailtable.Text, "Owner\r\nName", " Name ");
                    string      cur_address        = gc.Between(propertdetailtable.Text, "Address", " Address ");
                    string      city_State         = gc.Between(propertdetailtable.Text, "State", " City,");
                    string      Zip              = gc.Between(propertdetailtable.Text, "Zip", " Zip ");
                    IWebElement propertydetail1  = driver.FindElement(By.XPath("/html/body/table[2]/tbody/tr[3]/td[1]/table[2]/tbody/tr/td/table[4]/tbody"));
                    string      Subdivision      = gc.Between(propertydetail1.Text, "Subdivision", "Tax District");
                    string      PhysicalAddress  = gc.Between(propertydetail1.Text, "Physical Address", "Market Value");
                    string      TaxDistrict      = gc.Between(propertydetail1.Text, "Tax District", "Physical Address");
                    string      MarketValue      = gc.Between(propertydetail1.Text, "Market Value", "M/H");
                    string      PriorValue       = gc.Between(propertydetail1.Text, "Prior Value", "Tax Value");
                    string      TaxValue         = gc.Between(propertydetail1.Text, "Tax Value", "Exempt");
                    string      Exempt           = GlobalClass.After(propertydetail1.Text, "Exempt");
                    IWebElement legaltable       = driver.FindElement(By.XPath("/html/body/table[2]/tbody/tr[3]/td[1]/table[2]/tbody/tr/td/table[5]/tbody"));
                    string      legal1           = gc.Between(legaltable.Text, "Legal Desc 1", "Legal Desc 2");
                    string      legal2           = gc.Between(legaltable.Text, "Legal Desc 2", "Legal Desc 3");
                    string      legal3           = GlobalClass.After(legaltable.Text, "Legal Desc 3");
                    string      Legaldescription = legal1 + legal2 + legal3;
                    gc.CreatePdf(orderNumber, Parcel_number, "Property Search Result", driver, "SC", "Anderson");
                    string Propertyresult = owner_name + "~" + cur_address + "~" + city_State + "~" + Zip + "~" + Subdivision + "~" + PhysicalAddress + "~" + TaxDistrict + "~" + MarketValue + "~" + PriorValue + "~" + TaxValue + "~" + Exempt + "~" + Legaldescription;
                    gc.insert_date(orderNumber, Parcel_number, 902, Propertyresult, 1, DateTime.Now);

                    //Assessment
                    AssessmentTime = DateTime.Now.ToString("HH:mm:ss");
                    IWebElement         Assessmenttable = driver.FindElement(By.XPath("/html/body/table[2]/tbody/tr[3]/td[1]/table[2]/tbody/tr/td/table[6]/tbody"));
                    IList <IWebElement> assessmentrow   = Assessmenttable.FindElements(By.TagName("tr"));
                    IList <IWebElement> assessmentid;
                    foreach (IWebElement assessment in assessmentrow)
                    {
                        assessmentid = assessment.FindElements(By.TagName("td"));
                        if (assessmentid.Count != 0 && !assessment.Text.Contains("YEAR") && !assessment.Text.Contains("Assessment Totals"))
                        {
                            string assessmentresult = assessmentid[0].Text + "~" + assessmentid[1].Text + "~" + assessmentid[2].Text + "~" + assessmentid[3].Text + "~" + assessmentid[4].Text + "~" + assessmentid[5].Text + "~" + assessmentid[6].Text + "~" + assessmentid[7].Text + "~" + assessmentid[8].Text;
                            gc.insert_date(orderNumber, Parcel_number, 903, assessmentresult, 1, DateTime.Now);
                        }
                    }

                    //Tax Information
                    driver.Navigate().GoToUrl("http://acpass.andersoncountysc.org/p_tax_search.htm");
                    Thread.Sleep(3000);
                    driver.FindElement(By.Id("QryMapno")).SendKeys(Parcel_number.Substring(0, 10));
                    gc.CreatePdf(orderNumber, Parcel_number, "Tax site", driver, "SC", "Anderson");
                    driver.FindElement(By.Id("Sumbit")).Click();
                    Thread.Sleep(2000);
                    List <string> ParcelSearch = new List <string>();
                    try
                    {
                        gc.CreatePdf(orderNumber, Parcel_number, "Tax Information click", driver, "SC", "Anderson");
                        IWebElement         ParcelTB = driver.FindElement(By.XPath("/html/body/table[2]/tbody/tr[3]/td[1]/table[2]/tbody/tr[1]/td/form/table/tbody"));
                        IList <IWebElement> ParcelTR = ParcelTB.FindElements(By.TagName("tr"));
                        ParcelTR.Reverse();
                        int rows_count = ParcelTR.Count - 1;

                        for (int row = 0; row < rows_count; row++)
                        {
                            if (row == rows_count - 3 || row == rows_count - 1 || row == rows_count - 2)
                            {
                                IList <IWebElement> Columns_row = ParcelTR[row].FindElements(By.TagName("td"));
                                int columns_count = Columns_row.Count;
                                if (columns_count != 0)
                                {
                                    IWebElement ParcelBill_link = Columns_row[1].FindElement(By.TagName("a"));
                                    string      Parcelurl       = ParcelBill_link.GetAttribute("href");
                                    ParcelSearch.Add(Parcelurl);
                                }
                            }
                        }
                    }
                    catch { }
                    foreach (string taxlink in ParcelSearch)
                    {
                        driver.Navigate().GoToUrl(taxlink);

                        IWebElement accountnumbertable  = driver.FindElement(By.XPath("/html/body/table[2]/tbody/tr[3]/td[1]/table[2]/tbody/tr[3]/td/table[1]/tbody/tr[1]/td/table/tbody"));
                        string      accountnumber       = gc.Between(accountnumbertable.Text, "Account Number:", "TMS#:").Trim();
                        string      accountyear         = GlobalClass.Before(accountnumber, " ");
                        IWebElement taxdetailtabletable = driver.FindElement(By.XPath("/html/body/table[2]/tbody/tr[3]/td[1]/table[2]/tbody/tr[3]/td/table[1]/tbody"));
                        string      citylevel           = gc.Between(taxdetailtabletable.Text, "City:", "County:");
                        string      countylevel         = gc.Between(taxdetailtabletable.Text, "County:", "State");
                        string      assessmenttax       = GlobalClass.After(taxdetailtabletable.Text, "Assessment:");
                        string      taxdetailresult     = accountnumber + "~" + citylevel + "~" + countylevel + "~" + assessmenttax + "~" + Tax_Authority;
                        gc.insert_date(orderNumber, Parcel_number, 907, taxdetailresult, 1, DateTime.Now);
                        gc.CreatePdf(orderNumber, Parcel_number, "Tax Information" + accountyear, driver, "SC", "Anderson");

                        string paied = "", date = "";

                        IWebElement         taxpaymenttable = driver.FindElement(By.XPath("/html/body/table[2]/tbody/tr[3]/td[1]/table[2]/tbody/tr[3]/td/table[3]/tbody"));
                        IList <IWebElement> taxpaymentrow = taxpaymenttable.FindElements(By.TagName("tr"));
                        IList <IWebElement> taxpaymentid;
                        foreach (IWebElement taxpayment in taxpaymentrow)
                        {
                            taxpaymentid = taxpayment.FindElements(By.TagName("td"));
                            if (taxpaymentid.Count != 0 && taxpayment.Text.Contains("Paid Date"))
                            {
                                paied = taxpaymentid[1].Text;
                                date  = taxpaymentid[2].Text;
                            }
                            if (taxpaymentid.Count != 0 && taxpayment.Text.Contains("Payments"))
                            {
                                string taxpaymentresult1 = "Accountnumber" + "~" + "Paied date" + "~" + "Discription" + "~" + taxpaymentid[1].Text + "~" + taxpaymentid[2].Text + "~" + taxpaymentid[3].Text + "~" + "Data" + "~" + "Amount";
                                db.ExecuteQuery("update data_field_master set Data_Fields_Text='" + taxpaymentresult1 + "' where Id = '" + 908 + "'");
                            }
                            if (taxpayment.Text.Contains("Tax") || taxpayment.Text.Contains("Pen:") || taxpayment.Text.Contains("Fee:") || taxpayment.Text.Contains("Total:"))
                            {
                                string taxpaymentresult = accountnumber + "~" + date + "~" + taxpaymentid[0].Text + "~" + taxpaymentid[1].Text.Trim() + "~" + taxpaymentid[2].Text + "~" + taxpaymentid[3].Text + "~" + taxpaymentid[4].Text + "~" + taxpaymentid[5].Text;
                                gc.insert_date(orderNumber, Parcel_number, 908, taxpaymentresult, 1, DateTime.Now);
                                date = "";
                            }
                            if (taxpaymentid.Count == 1 && taxpayment.Text.Contains("County"))
                            {
                                string taxpaymentresult = accountnumber + "~" + "~" + "Tax" + "~" + taxpaymentid[0].Text + "~" + "~" + "~" + "~";
                                gc.insert_date(orderNumber, Parcel_number, 908, taxpaymentresult, 1, DateTime.Now);
                            }
                        }
                    }
                    LastEndTime = DateTime.Now.ToString("HH:mm:ss");
                    gc.insert_TakenTime(orderNumber, "SC", "Anderson", StartTime, AssessmentTime, TaxTime, CitytaxTime, LastEndTime);
                    driver.Quit();
                    gc.mergpdf(orderNumber, "SC", "Anderson");
                    return("Data Inserted Successfully");
                }
                catch (Exception ex)
                {
                    driver.Quit();
                    GlobalClass.LogError(ex, orderNumber);
                    throw ex;
                }
            }
        }
Beispiel #28
0
        public string FTP_Allen(string address, string unitno, string ownername, string parcelNumber, string searchType, string orderNumber)
        {
            GlobalClass.global_orderNo             = orderNumber;
            HttpContext.Current.Session["orderNo"] = orderNumber;
            GlobalClass.global_parcelNo            = parcelNumber;
            //GlobalClass.sname = "IN";
            //GlobalClass.cname = "Allen";
            List <string> multiparcel = new List <string>();
            string        StartTime = "", AssessmentTime = "", TaxTime = "", CitytaxTime = "", LastEndTime = "", TaxAuthority = "";

            var driverService = PhantomJSDriverService.CreateDefaultService();

            driverService.HideCommandPromptWindow = true;
            //driver = new PhantomJSDriver();
            //driver = new ChromeDriver();
            using (driver = new PhantomJSDriver())
            {
                StartTime = DateTime.Now.ToString("HH:mm:ss");
                try
                {
                    driver.Navigate().GoToUrl("https://www.allencounty.us/treasurers-office");
                    string TaxAuthority1 = driver.FindElement(By.XPath("//*[@id='rt-sidebar-a']/div[4]/div/div[2]/div/p[1]")).Text;
                    string TaxAuthority2 = driver.FindElement(By.XPath("//*[@id='rt-sidebar-a']/div[4]/div/div[2]/div/p[2]")).Text;
                    string TaxAuthority3 = GlobalClass.Before(TaxAuthority2, "Fax:");
                    TaxAuthority = TaxAuthority1 + " " + TaxAuthority3;
                }
                catch { }

                driver.Navigate().GoToUrl("http://lowtaxinfo.com/allencounty/#/SearchView");
                try
                {
                    //string address = streetno + " " + direction + " " + streetname + " " + streetype + " " + unitno;
                    if (searchType == "titleflex")
                    {
                        gc.TitleFlexSearch(orderNumber, "", "", address, "IN", "Allen");
                        if ((HttpContext.Current.Session["TitleFlex_Search"] != null && HttpContext.Current.Session["TitleFlex_Search"].ToString() == "Yes"))
                        {
                            driver.Quit();
                            return("MultiParcel");
                        }
                        else if (HttpContext.Current.Session["titleparcel"].ToString() == "")
                        {
                            HttpContext.Current.Session["Nodata_AllenIN"] = "Yes";
                            driver.Quit();
                            return("No Data Found");
                        }
                        parcelNumber = HttpContext.Current.Session["titleparcel"].ToString();
                        searchType   = "parcel";
                    }
                    if (searchType == "address")
                    {
                        driver.FindElement(By.XPath("//*[@id='address']/div/div/input")).SendKeys(address);

                        IWebElement         IAddressSearch123 = driver.FindElement(By.XPath("//*[@id='searchForm']/div[5]/button"));
                        IJavaScriptExecutor js123             = driver as IJavaScriptExecutor;
                        js123.ExecuteScript("arguments[0].click();", IAddressSearch123);
                        //Thread.Sleep(15000);
                        Thread.Sleep(2000);
                        //Multi Parcel
                        try
                        {
                            //int i = 0;
                            int                 count             = 0;
                            IWebElement         Multiaddresstable = driver.FindElement(By.XPath("//*[@id='gridContainer']/div/div[6]/div/div[1]/div/table/tbody"));
                            IList <IWebElement> multiaddressrow   = Multiaddresstable.FindElements(By.TagName("tr"));
                            IList <IWebElement> Mutiaddressid;
                            foreach (IWebElement Multiaddress in multiaddressrow)
                            {
                                Mutiaddressid = Multiaddress.FindElements(By.TagName("td"));

                                if (Mutiaddressid.Count == 18 && Mutiaddressid[6].Text.Trim().Contains("R"))
                                {
                                    if (multiaddressrow.Count != 0 && Multiaddress.Text.Trim() != "" && Multiaddress.Text.Contains(address.Trim()))
                                    {
                                        string   Parcelnumber            = Mutiaddressid[2].Text;
                                        string[] multiaddressresultsplit = Mutiaddressid[3].Text.Split('\r');

                                        string Ownerparcel        = multiaddressresultsplit[0].Trim();
                                        string Address            = multiaddressresultsplit[2].Trim();
                                        string multiaddressresult = Ownerparcel + "~" + Address;
                                        gc.insert_date(orderNumber, Parcelnumber, 1779, multiaddressresult, 1, DateTime.Now);
                                        count++;
                                    }
                                }
                            }
                            if (count > 1)
                            {
                                HttpContext.Current.Session["multiParcel_AllenIN"] = "Yes";
                                driver.Quit();
                                return("MultiParcel");
                            }
                            if (count == 1)
                            {
                                for (int i = 1; i < 11; i++)
                                {
                                    IWebElement clicktest = driver.FindElement(By.XPath("//*[@id='gridContainer']/div/div[6]/div/div[1]/div/table/tbody/tr[" + i + "]"));
                                    if (clicktest.Text.Contains(address.Trim()))
                                    {
                                        clicktest.Click();
                                        Thread.Sleep(2000);
                                        break;
                                    }
                                }
                            }
                            if (multiaddressrow.Count > 91)
                            {
                                HttpContext.Current.Session["multiParcel_AllenIN_Maximum"] = "Maximum";
                                driver.Quit();
                                return("Maximum");
                            }
                        }
                        catch { }
                        try
                        {
                            //No Data Found
                            string nodata = driver.FindElement(By.Id("MainContent_lblMsg")).Text;
                            if (nodata.Contains("There were no records found."))
                            {
                                HttpContext.Current.Session["Nodata_AllenIN"] = "Yes";
                                driver.Quit();
                                return("No Data Found");
                            }
                        }
                        catch { }
                    }
                    if (searchType == "ownername")
                    {
                        driver.FindElement(By.XPath("//*[@id='name']/div/div/input")).SendKeys(ownername);
                        gc.CreatePdf_WOP(orderNumber, "SearchownernameBefore", driver, "IN", "Allen");
                        IWebElement         IAddressSearch13 = driver.FindElement(By.XPath("//*[@id='searchForm']/div[5]/button"));
                        IJavaScriptExecutor js13             = driver as IJavaScriptExecutor;
                        js13.ExecuteScript("arguments[0].click();", IAddressSearch13);
                        Thread.Sleep(2000);
                        gc.CreatePdf_WOP(orderNumber, "SearchownernameAfter", driver, "IN", "Allen");
                        //Multi Parcel
                        try
                        {
                            int                 count             = 0;
                            IWebElement         Multiaddresstable = driver.FindElement(By.XPath("//*[@id='gridContainer']/div/div[6]/div/div[1]/div/table/tbody"));
                            IList <IWebElement> multiaddressrow   = Multiaddresstable.FindElements(By.TagName("tr"));
                            IList <IWebElement> Mutiaddressid;
                            foreach (IWebElement Multiaddress in multiaddressrow)
                            {
                                Mutiaddressid = Multiaddress.FindElements(By.TagName("td"));

                                if (Mutiaddressid.Count == 18 && Mutiaddressid[6].Text.Trim().Contains("R"))
                                {
                                    if (multiaddressrow.Count != 0 && Multiaddress.Text.Trim() != "" && Multiaddress.Text.Contains(address.Trim()))
                                    {
                                        string   Parcelnumber            = Mutiaddressid[2].Text;
                                        string[] multiaddressresultsplit = Mutiaddressid[3].Text.Split('\r');

                                        string Ownerparcel        = multiaddressresultsplit[0].Trim();
                                        string Address            = multiaddressresultsplit[2].Trim();
                                        string multiaddressresult = Ownerparcel + "~" + Address;
                                        gc.insert_date(orderNumber, Parcelnumber, 1779, multiaddressresult, 1, DateTime.Now);
                                        count++;
                                    }
                                }
                            }
                            if (count > 1)
                            {
                                HttpContext.Current.Session["multiParcel_AllenIN"] = "Yes";
                                driver.Quit();
                                return("MultiParcel");
                            }
                            if (count == 1)
                            {
                                for (int i = 1; i < 11; i++)
                                {
                                    IWebElement clicktest = driver.FindElement(By.XPath("//*[@id='gridContainer']/div/div[6]/div/div[1]/div/table/tbody/tr[" + i + "]"));
                                    if (clicktest.Text.Contains(address.Trim()))
                                    {
                                        clicktest.Click();
                                        Thread.Sleep(2000);
                                        break;
                                    }
                                }
                            }
                            if (multiaddressrow.Count > 91)
                            {
                                HttpContext.Current.Session["multiParcel_AllenIN_Maximum"] = "Maximum";
                                driver.Quit();
                                return("Maximum");
                            }
                        }
                        catch { }
                        try
                        {
                            //No Data Found
                            string nodata = driver.FindElement(By.Id("MainContent_lblMsg")).Text;
                            if (nodata.Contains("There were no records found."))
                            {
                                HttpContext.Current.Session["Nodata_AllenIN"] = "Yes";
                                driver.Quit();
                                return("No Data Found");
                            }
                        }
                        catch { }
                    }
                    if (searchType == "parcel")
                    {
                        //driver.FindElement(By.Id("parcel")).Clear();
                        //driver.FindElement(By.Id("parcel")).SendKeys(parcelNumber);
                        driver.Navigate().GoToUrl("https://lowtaxinfo.com/allencounty/#/Search/-/-/-/" + parcelNumber + "");
                        gc.CreatePdf(orderNumber, parcelNumber, "SearchparcelBefore", driver, "IN", "Allen");
                        IWebElement         IAddressSearch14 = driver.FindElement(By.XPath("//*[@id='searchForm']/div[5]/button"));
                        IJavaScriptExecutor js14             = driver as IJavaScriptExecutor;
                        js14.ExecuteScript("arguments[0].click();", IAddressSearch14);
                        Thread.Sleep(15000);
                        gc.CreatePdf(orderNumber, parcelNumber, "SearchparcelAfter", driver, "IN", "Allen");
                        try
                        {
                            //No Data Found
                            string nodata = driver.FindElement(By.Id("MainContent_lblMsg")).Text;
                            if (nodata.Contains("There were no records found."))
                            {
                                HttpContext.Current.Session["Nodata_AllenIN"] = "Yes";
                                driver.Quit();
                                return("No Data Found");
                            }
                        }
                        catch { }
                    }
                    //Property Details
                    string ParcelNumber = "", ParcelID = "", Loacalparcelid = "", RoutingNumber = "", Propertyclass = "", Propertyaddress = "", Ownername = "", Mailingaddress = "", Legaldescripton = "", County = "", Township = "", District = "", School = "", Neighborhood = "", Sectionplat = "", YearBuilt = "";
                    //Tax Information Details

                    try
                    {
                        IWebElement         IAddressSearch2 = driver.FindElement(By.XPath("//*[@id='gridContainer']/div/div[6]/div/div[1]/div/table/tbody/tr[1]/td[2]/table/tbody/tr[1]/td"));
                        IJavaScriptExecutor js2             = driver as IJavaScriptExecutor;
                        js2.ExecuteScript("arguments[0].click();", IAddressSearch2);
                        Thread.Sleep(3000);
                    }
                    catch { }

                    string      ParcelNumber1 = "", Propertyadd = "", Taxyear = "", Propertytype = "", Taxunit = "", Propertyclass1 = "", Ownername1 = "", Mailingadd = "";
                    IWebElement Taxinfo1 = driver.FindElement(By.XPath("//*[@id='PropertyInformation']/div/div[1]"));

                    Taxyear      = gc.Between(Taxinfo1.Text, "Tax Year/Pay Year", "Parcel Number").Trim();
                    ParcelNumber = gc.Between(Taxinfo1.Text, "Parcel Number", "Property Type").Trim();
                    gc.CreatePdf(orderNumber, ParcelNumber, "Check", driver, "IN", "Allen");
                    Ownername1    = gc.Between(Taxinfo1.Text, "Owner of Record", "Mailing Address").Trim();
                    Propertyadd   = driver.FindElement(By.Id("PropertyAddressHeader")).Text.Trim();
                    Propertytype  = gc.Between(Taxinfo1.Text, "Property Type", "Tax Unit / Description").Trim();
                    Taxunit       = gc.Between(Taxinfo1.Text, "Tax Unit / Description", "Property Class").Trim();
                    Propertyclass = gc.Between(Taxinfo1.Text, "Property Class", "Owner of Record").Trim();
                    Mailingadd    = GlobalClass.After(Taxinfo1.Text, "Mailing Address").Trim();

                    string Taxinformationdetail1 = Taxyear.Trim() + "~" + Ownername1.Trim() + "~" + Propertyadd.Trim() + "~" + Propertytype.Trim() + "~" + Taxunit.Trim() + "~" + Propertyclass + "~" + Mailingadd + "~" + TaxAuthority;
                    gc.insert_date(orderNumber, ParcelNumber, 1775, Taxinformationdetail1, 1, DateTime.Now);

                    //Tax History Table
                    string Payyear = "", Spring = "", Fall = "", Delinquencies = "", Totaltax = "", Payments = "", Balancedue = "";

                    IWebElement         History = driver.FindElement(By.XPath("//*[@id='TaxHistory']/div/div/div[6]/div/table/tbody"));
                    IList <IWebElement> TRTaxHistory = History.FindElements(By.TagName("tr"));
                    IList <IWebElement> TDTaxHistory;
                    foreach (IWebElement row1 in TRTaxHistory)
                    {
                        TDTaxHistory = row1.FindElements(By.TagName("td"));
                        if (row1.Text.Trim() != "" && TDTaxHistory.Count != 0 && TDTaxHistory.Count == 6)
                        {
                            Payyear       = TDTaxHistory[0].Text;
                            Spring        = TDTaxHistory[1].Text;
                            Fall          = TDTaxHistory[2].Text;
                            Delinquencies = TDTaxHistory[3].Text;
                            if (Delinquencies != "$0.00")
                            {
                                Balancedue = "Delinquent";
                            }
                            Totaltax = TDTaxHistory[4].Text;
                            Payments = TDTaxHistory[5].Text;

                            string TaxHistory = Payyear.Trim() + "~" + Spring.Trim() + "~" + Fall.Trim() + "~" + Delinquencies.Trim() + "~" + Totaltax.Trim() + "~" + Payments.Trim() + "~" + Balancedue.Trim();
                            gc.insert_date(orderNumber, ParcelNumber, 1778, TaxHistory, 1, DateTime.Now);
                            Balancedue = "";
                        }
                    }

                    //Tax Summary Details
                    string summaryitem = "", year1 = "", year2 = "";

                    IWebElement         Summary      = driver.FindElement(By.XPath("//*[@id='TaxSummary']/div/table/tbody"));
                    IList <IWebElement> TRTaxSummary = Summary.FindElements(By.TagName("tr"));
                    IList <IWebElement> TDTaxSummary;
                    foreach (IWebElement row2 in TRTaxSummary)
                    {
                        TDTaxSummary = row2.FindElements(By.TagName("td"));
                        if (row2.Text.Contains("Tax Summary Item"))
                        {
                            summaryitem = TDTaxSummary[0].Text;
                            year1       = TDTaxSummary[1].Text;
                            year2       = TDTaxSummary[2].Text;
                            string title = summaryitem.Trim() + "~" + year1.Trim() + "~" + year2.Trim();
                            title = title.TrimEnd('~');
                            db.ExecuteQuery("update data_field_master set Data_Fields_Text='" + title + "' where Id = '" + 1780 + "'");
                        }
                        if (TDTaxSummary.Count != 0 && TDTaxSummary.Count == 3 && !row2.Text.Contains("Tax Summary Item"))
                        {
                            summaryitem = TDTaxSummary[0].Text;
                            year1       = TDTaxSummary[1].Text;
                            year2       = TDTaxSummary[2].Text;
                            string Taxsummary = summaryitem.Trim() + "~" + year1.Trim() + "~" + year2.Trim();
                            gc.insert_date(orderNumber, ParcelNumber, 1780, Taxsummary, 1, DateTime.Now);
                        }
                    }
                    //Tax Bill Download
                    //string current1 = driver.CurrentWindowHandle;
                    //driver.FindElement(By.XPath("//*[@id='property-navbar']/div/div[2]/img[2]")).Click();
                    //Thread.Sleep(2000);
                    //gc.CreatePdf(orderNumber, ParcelNumber, "Check1", driver, "IN", "Allen");
                    //driver.SwitchTo().Window(driver.WindowHandles.Last());
                    //Thread.Sleep(5000);
                    //string downlurrl = driver.Url;
                    //gc.downloadfile(downlurrl, orderNumber, ParcelNumber, "TaxBill", "IN", "Allen");
                    //gc.CreatePdf(orderNumber, ParcelNumber, "Check2", driver, "IN", "Allen");
                    //IWebElement Multyaddresstable1 = driver.FindElement(By.TagName("embed"));
                    //string urldowl = Multyaddresstable1.GetAttribute("src");
                    //gc.downloadfile(urldowl, orderNumber, ParcelNumber, "TaxBill", "IN", "Allen");
                    //driver.SwitchTo().Window(current1);



                    string      Year         = "";
                    IWebElement selecelement = driver.FindElement(By.Id("PayYears"));
                    string[]    slectyear    = selecelement.Text.Split('\r');

                    IWebElement         tbmulti = driver.FindElement(By.Id("PayYears"));
                    IList <IWebElement> TRmulti = tbmulti.FindElements(By.TagName("option"));

                    string getsplitvalue = "";
                    IList <IWebElement> TDmulti;
                    foreach (IWebElement row in TRmulti)
                    {
                        if (!row.Text.Contains("Pay Year"))
                        {
                            getsplitvalue += row.Text + "~";
                        }
                    }
                    getsplitvalue = getsplitvalue.TrimEnd('~');
                    string[] splitgetyears = getsplitvalue.Split('~');

                    for (int i = splitgetyears.Count() - 1; i > splitgetyears.Count() - 5; i--)
                    {
                        IWebElement   selecelement1 = driver.FindElement(By.Id("PayYears"));
                        SelectElement clkci         = new SelectElement(selecelement1);
                        clkci.SelectByText(splitgetyears[i]);
                        Thread.Sleep(2000);

                        Year = driver.FindElement(By.XPath("//*[@id='PropertyInformation']/div/div[1]/span[1]")).Text.Trim();
                        Thread.Sleep(5000);
                        gc.CreatePdf(orderNumber, ParcelNumber, "Yearwise Pdf" + i, driver, "IN", "Allen");
                        //Tax Information Details2  // DB insert 1776

                        string              Payableyear = "", Entrydate = "", Payableperiod = "", Paidamount = "", Description = "";
                        IWebElement         Taxdetails2   = driver.FindElement(By.XPath("//*[@id='Payments']/div/div/div[6]/div/div[1]/div/table/tbody"));
                        IList <IWebElement> TRTaxdetails2 = Taxdetails2.FindElements(By.TagName("tr"));
                        IList <IWebElement> TDTaxdetails2;
                        foreach (IWebElement row2 in TRTaxdetails2)
                        {
                            TDTaxdetails2 = row2.FindElements(By.TagName("td"));
                            if (row2.Text.Trim() != "" && TDTaxdetails2.Count != 0 && TDTaxdetails2.Count == 6 && !row2.Text.Contains("Payable Year"))
                            {
                                Payableyear   = TDTaxdetails2[0].Text;
                                Entrydate     = TDTaxdetails2[1].Text;
                                Payableperiod = TDTaxdetails2[2].Text;
                                Paidamount    = TDTaxdetails2[3].Text;
                                Description   = TDTaxdetails2[4].Text;
                                string Taxdetailstable = Year.Trim() + "~" + Payableyear.Trim() + "~" + Entrydate.Trim() + "~" + Payableperiod.Trim() + "~" + Paidamount.Trim() + "~" + Description.Trim();
                                gc.insert_date(orderNumber, ParcelNumber, 1776, Taxdetailstable, 1, DateTime.Now);
                            }
                        }

                        //Tax Details Table

                        string Field = "", Taxamount = "", Adjustments = "", Balance = "";

                        IWebElement         Taxdetails1 = driver.FindElement(By.XPath("//*[@id='BillingDetail']/div/div/div[6]/div/div[1]/div/table/tbody"));
                        IList <IWebElement> TRTaxdetails1 = Taxdetails1.FindElements(By.TagName("tr"));
                        IList <IWebElement> TDTaxdetails1;
                        foreach (IWebElement row in TRTaxdetails1)
                        {
                            TDTaxdetails1 = row.FindElements(By.TagName("td"));
                            if (TDTaxdetails1.Count != 0 && TDTaxdetails1.Count == 4)
                            {
                                Field       = TDTaxdetails1[0].Text;
                                Taxamount   = TDTaxdetails1[1].Text;
                                Adjustments = TDTaxdetails1[2].Text;
                                Balance     = TDTaxdetails1[3].Text;
                                string Taxdetailstable = Year.Trim() + "~" + Field.Trim() + "~" + Taxamount.Trim() + "~" + Adjustments.Trim() + "~" + Balance.Trim();
                                gc.insert_date(orderNumber, ParcelNumber, 1777, Taxdetailstable, 1, DateTime.Now);
                            }
                        }

                        //Assessed Value Details
                        string              Landvalue = "", Landvaltitle = "", Improvements = "", Improvementstitle = "", Homesteadstand = "", Homesteadsupp = "", Mortgage = "", Count = "";
                        IWebElement         Assessed = driver.FindElement(By.XPath("//*[@id='AssessmentsReport1']/div[1]/div/div[6]/div/div[1]/div/table/tbody"));
                        IList <IWebElement> TRTaxAssessed = Assessed.FindElements(By.TagName("tr"));
                        IList <IWebElement> TDTaxAssessed;
                        foreach (IWebElement row2 in TRTaxAssessed)
                        {
                            TDTaxAssessed = row2.FindElements(By.TagName("td"));
                            if (TDTaxAssessed.Count != 0 && TDTaxAssessed.Count == 2 && row2.Text.Contains("Land Value"))
                            {
                                Landvaltitle = TDTaxAssessed[0].Text;
                                Landvalue    = TDTaxAssessed[1].Text;
                            }
                            if (TDTaxAssessed.Count != 0 && TDTaxAssessed.Count == 2 && row2.Text.Contains("Improvements"))
                            {
                                Improvementstitle = TDTaxAssessed[0].Text;
                                Improvements      = TDTaxAssessed[1].Text;
                            }
                        }

                        string              Homesteadstandtitle = "", Homesteadsupptitle = "", Mortgagetitle = "", Counttitle = "";
                        IWebElement         Assessed1      = driver.FindElement(By.XPath("//*[@id='ExemptionsDeductions']/div/div/div[6]/div/div[1]/div/table/tbody"));
                        IList <IWebElement> TRTaxAssessed1 = Assessed1.FindElements(By.TagName("tr"));
                        IList <IWebElement> TDTaxAssessed1;
                        foreach (IWebElement row21 in TRTaxAssessed1)
                        {
                            TDTaxAssessed1 = row21.FindElements(By.TagName("td"));

                            if (TDTaxAssessed1.Count != 0 && TDTaxAssessed1.Count == 2 && row21.Text.Contains("Stand"))
                            {
                                Homesteadstandtitle = TDTaxAssessed1[0].Text;
                                Homesteadstand      = TDTaxAssessed1[1].Text;
                            }
                            if (TDTaxAssessed1.Count != 0 && TDTaxAssessed1.Count == 2 && row21.Text.Contains("Supp"))
                            {
                                Homesteadsupptitle = TDTaxAssessed1[0].Text;
                                Homesteadsupp      = TDTaxAssessed1[1].Text;
                            }
                            if (TDTaxAssessed1.Count != 0 && TDTaxAssessed1.Count == 2 && row21.Text.Contains("Mortgage"))
                            {
                                Mortgagetitle = TDTaxAssessed1[0].Text;
                                Mortgage      = TDTaxAssessed1[1].Text;
                            }
                        }


                        IWebElement         Assessed2      = driver.FindElement(By.XPath("//*[@id='ExemptionsDeductions']/div/div/div[8]/div/table/tbody"));
                        IList <IWebElement> TRTaxAssessed2 = Assessed2.FindElements(By.TagName("tr"));
                        IList <IWebElement> TDTaxAssessed2;
                        foreach (IWebElement row31 in TRTaxAssessed2)
                        {
                            TDTaxAssessed2 = row31.FindElements(By.TagName("td"));
                            if (TDTaxAssessed2.Count != 0 && TDTaxAssessed2.Count == 2 && row31.Text.Contains("Count:"))
                            {
                                Counttitle = TDTaxAssessed2[0].Text;
                                Count      = TDTaxAssessed2[1].Text;
                            }
                        }

                        string title1 = Landvaltitle.Trim() + "~" + Improvementstitle.Trim() + "~" + Homesteadstandtitle.Trim() + "~" + Homesteadsupptitle.Trim() + "~" + Mortgagetitle.Trim() + "~" + Counttitle.Trim();
                        title1 = title1.TrimEnd('~');
                        db.ExecuteQuery("update data_field_master set Data_Fields_Text='" + "Tax Year~" + title1 + "' where Id = '" + 1781 + "'");
                        string TaxAssessed = Year + "~" + Landvalue.Trim() + "~" + Improvements.Trim() + "~" + Homesteadstand.Trim() + "~" + Homesteadsupp.Trim() + "~" + Mortgage.Trim() + "~" + Count.Trim();
                        gc.insert_date(orderNumber, ParcelNumber, 1781, TaxAssessed, 1, DateTime.Now);
                    }

                    /*************************************/
                    //Property Details
                    ParcelID = driver.FindElement(By.XPath("//*[@id='PropertyInformation']/div/div[1]/span[2]")).Text.Trim().Replace(".", "").Trim().Replace("-", "").Trim();
                    string fileName1 = "";

                    var chromeOptions     = new ChromeOptions();
                    var downloadDirectory = ConfigurationManager.AppSettings["AutoPdf"];
                    chromeOptions.AddUserProfilePreference("download.default_directory", downloadDirectory);
                    chromeOptions.AddUserProfilePreference("download.prompt_for_download", false);
                    chromeOptions.AddUserProfilePreference("disable-popup-blocking", "true");
                    chromeOptions.AddUserProfilePreference("plugins.always_open_pdf_externally", true);
                    var chDriver = new ChromeDriver(chromeOptions);
                    Array.ForEach(Directory.GetFiles(@downloadDirectory), File.Delete);
                    chDriver.Navigate().GoToUrl("https://lowtaxinfo.com/AllenCounty/PRC/" + ParcelID + ".pdf");
                    Thread.Sleep(2000);

                    fileName1 = latestfilename();
                    Thread.Sleep(2000);
                    gc.AutoDownloadFile(orderNumber, ParcelID, "Allen", "IN", fileName1);

                    //Tax Bill Download
                    try
                    {
                        string fileName11 = "";
                        chDriver.Navigate().GoToUrl("https://lowtaxinfo.com/allencounty/#/Search/-/-/-/" + ParcelID + "");
                        Thread.Sleep(15000);
                        gc.CreatePdf(orderNumber, ParcelNumber, "Check2", chDriver, "IN", "Allen");
                        try
                        {
                            chDriver.FindElement(By.XPath("//*[@id='BtnTaxBill']")).Click();
                            Thread.Sleep(2000);
                            gc.CreatePdf(orderNumber, ParcelNumber, "xpathBtnTaxBilljsclick", chDriver, "IN", "Allen");
                        }
                        catch { }
                        try
                        {
                            IWebElement         IAddressSearch1234 = chDriver.FindElement(By.XPath("//*[@id='BtnTaxBill"));
                            IJavaScriptExecutor js1234             = chDriver as IJavaScriptExecutor;
                            js1234.ExecuteScript("arguments[0].click();", IAddressSearch1234);
                            Thread.Sleep(2000);
                            gc.CreatePdf(orderNumber, ParcelNumber, "xpathBtnTaxBilljsclick", chDriver, "IN", "Allen");
                        }
                        catch { }
                        try
                        {
                            chDriver.FindElement(By.Id("BtnTaxBill")).Click();
                            Thread.Sleep(2000);
                            gc.CreatePdf(orderNumber, ParcelNumber, "IdBtnTaxBill", chDriver, "IN", "Allen");
                        }
                        catch { }
                        try
                        {
                            IWebElement         IAddressSearch12345 = chDriver.FindElement(By.Id("BtnTaxBill"));
                            IJavaScriptExecutor js12345             = chDriver as IJavaScriptExecutor;
                            js12345.ExecuteScript("arguments[0].click();", IAddressSearch12345);
                            Thread.Sleep(2000);
                            gc.CreatePdf(orderNumber, ParcelNumber, "IdBtnTaxBilljsclick", chDriver, "IN", "Allen");
                        }
                        catch { }
                        gc.CreatePdf(orderNumber, ParcelNumber, "Check1", chDriver, "IN", "Allen");
                        fileName11 = latestfilename();
                        Thread.Sleep(2000);
                        gc.AutoDownloadFile(orderNumber, ParcelID, "Allen", "IN", fileName11);
                    }
                    catch { }
                    chDriver.Quit();

                    string    FilePath = gc.filePath(orderNumber, ParcelID) + fileName1;
                    PdfReader reader;
                    string    pdfData;
                    string    pdftext = "";

                    try
                    {
                        reader = new PdfReader(FilePath);
                        String textFromPage = PdfTextExtractor.GetTextFromPage(reader, 1);
                        System.Diagnostics.Debug.WriteLine("" + textFromPage);

                        pdftext = textFromPage;
                        string[] splittextt = pdftext.Split('\n');

                        Loacalparcelid  = splittextt[10].Trim();
                        RoutingNumber   = splittextt[19].Trim();
                        Propertyclass   = splittextt[22].Trim();
                        Propertyaddress = splittextt[7].Trim();
                        Ownername       = splittextt[3].Replace("Parcel Number", "").Trim();
                        Mailingaddress  = splittextt[59];
                        Legaldescripton = splittextt[16];
                        string[] legalsplit = Legaldescripton.Split('\r');
                        County       = splittextt[31].Trim();
                        Township     = splittextt[35].Trim();
                        District     = splittextt[39].Trim();
                        School       = splittextt[44].Trim();
                        Neighborhood = splittextt[47].Trim();
                        Sectionplat  = splittextt[52].Trim();

                        String textFromPage1 = PdfTextExtractor.GetTextFromPage(reader, 2);
                        System.Diagnostics.Debug.WriteLine("" + textFromPage1);
                        string   pdftext1            = textFromPage1;
                        string[] splittexttyearbuilt = pdftext1.Split('\n');
                        YearBuilt = "";

                        string Propertdetails = Ownername.Trim() + "~" + Loacalparcelid.Trim() + "~" + RoutingNumber.Trim() + "~" + Propertyclass.Trim() + "~" + Propertyaddress + "~" + Mailingaddress + "~" + Legaldescripton + "~" + County + "~" + Township + "~" + District + "~" + School + "~" + Neighborhood + "~" + Sectionplat + "~" + YearBuilt;
                        gc.insert_date(orderNumber, ParcelID, 1768, Propertdetails, 1, DateTime.Now);

                        //Assessment Details

                        string[] splittextt1     = pdftext.Split('\n');
                        string   tableassess     = gc.Between(pdftext, "Year:", "Total Non Res (3)").Trim();
                        string[] tableArray      = tableassess.Split('\n');
                        string[] Assessmentsplit = tableArray[1].Split(' ');
                        string[] Reasonchange    = GlobalClass.After(tableArray[3], "Reason For Change").Split(' ');
                        string[] asofdate        = tableArray[5].Split(' ');
                        string[] ValuationMethod = GlobalClass.After(tableArray[8], "Valuation Method").Trim().Split(' ');

                        string Valution1 = ValuationMethod[0].Trim() + " " + ValuationMethod[1].Trim() + " " + ValuationMethod[2].Trim();
                        string Valution2 = ValuationMethod[3].Trim() + " " + ValuationMethod[4] + " " + ValuationMethod[5].Trim();
                        string Valution3 = ValuationMethod[6].Trim() + " " + ValuationMethod[7] + " " + ValuationMethod[8].Trim();
                        string Valution4 = ValuationMethod[9].Trim() + " " + ValuationMethod[10] + " " + ValuationMethod[11].Trim();
                        string Valution5 = ValuationMethod[12].Trim() + " " + ValuationMethod[13] + " " + ValuationMethod[14].Trim();

                        string[] Equalizationfactor = tableArray[9].Trim().Split(' ');
                        string   Noticerequired     = "YES";
                        string[] Land        = tableArray[14].Trim().Split('$');
                        string[] Landres1    = tableArray[16].Trim().Split('$');
                        string[] Landnonres2 = tableArray[17].Trim().Split('$');
                        string[] Landnonres3 = tableArray[19].Trim().Split('$');
                        string[] improvement = tableArray[21].Trim().Split('$');
                        string[] impres1     = tableArray[22].Trim().Split('$');
                        string[] impnonres2  = tableArray[24].Trim().Split('$');
                        string[] impnonres3  = tableArray[25].Trim().Split('$');
                        string[] total       = tableArray[27].Trim().Split('$');
                        string[] total1      = tableArray[30].Trim().Split('$');
                        string[] totalres2   = tableArray[31].Trim().Split('$');
                        string[] totalres3   = tableArray[34].Trim().Split('$');

                        string Type1 = Assessmentsplit[0].Trim() + "~" + Reasonchange[1].Trim() + "~" + asofdate[0] + "~" + Valution1 + "~" + Equalizationfactor[0] + "~" + Noticerequired + "~" + Land[2] + "~" + Landres1[2] + "~" + Landnonres2[2] + "~" + Landnonres3[2] + "~" + improvement[2] + "~" + impres1[2] + "~" + impnonres2[2] + "~" + impnonres3[2] + "~" + total[2] + "~" + total1[2] + "~" + totalres2[2] + "~" + "";
                        string Type2 = Assessmentsplit[1].Trim() + "~" + Reasonchange[2].Trim() + "~" + asofdate[1] + "~" + Valution2 + "~" + Equalizationfactor[1] + "~" + Noticerequired + "~" + Land[3] + "~" + Landres1[3] + "~" + Landnonres2[3] + "~" + Landnonres3[3] + "~" + improvement[3] + "~" + impres1[3] + "~" + impnonres2[3] + "~" + impnonres3[3] + "~" + total[3] + "~" + total1[3] + "~" + totalres2[3] + "~" + "";
                        string Type3 = Assessmentsplit[2].Trim() + "~" + Reasonchange[3].Trim() + "~" + asofdate[2] + "~" + Valution3 + "~" + Equalizationfactor[2] + "~" + Noticerequired + "~" + Land[4] + "~" + Landres1[4] + "~" + Landnonres2[4] + "~" + Landnonres3[4] + "~" + improvement[4] + "~" + impres1[4] + "~" + impnonres2[4] + "~" + impnonres3[4] + "~" + total[4] + "~" + total1[4] + "~" + totalres2[4] + "~" + "";
                        string Type4 = Assessmentsplit[3].Trim() + "~" + Reasonchange[4].Trim() + "~" + asofdate[3] + "~" + Valution4 + "~" + Equalizationfactor[3] + "~" + Noticerequired + "~" + Land[5] + "~" + Landres1[5] + "~" + Landnonres2[5] + "~" + Landnonres3[5] + "~" + improvement[5] + "~" + impres1[5] + "~" + impnonres2[5] + "~" + impnonres3[5] + "~" + total[5] + "~" + total1[5] + "~" + totalres2[5] + "~" + "";
                        string Type5 = Assessmentsplit[4].Trim() + "~" + Reasonchange[5].Trim() + "~" + asofdate[4] + "~" + Valution5 + "~" + Equalizationfactor[4] + "~" + Noticerequired + "~" + Land[6] + "~" + Landres1[6] + "~" + Landnonres2[6] + "~" + Landnonres3[6] + "~" + improvement[6] + "~" + impres1[6] + "~" + impnonres2[6] + "~" + impnonres3[6] + "~" + total[6] + "~" + total1[6] + "~" + totalres2[6] + "~" + "";
                        gc.insert_date(orderNumber, ParcelNumber, 1769, Type1, 1, DateTime.Now);
                        gc.insert_date(orderNumber, ParcelNumber, 1769, Type2, 1, DateTime.Now);
                        gc.insert_date(orderNumber, ParcelNumber, 1769, Type3, 1, DateTime.Now);
                        gc.insert_date(orderNumber, ParcelNumber, 1769, Type4, 1, DateTime.Now);
                        gc.insert_date(orderNumber, ParcelNumber, 1769, Type5, 1, DateTime.Now);
                    }
                    catch (Exception ex)
                    { }

                    try
                    {
                        driver.Navigate().GoToUrl("https://www.allencounty.us/treasurers-office");
                        gc.CreatePdf(orderNumber, ParcelNumber, "Tax Authority Pdf", driver, "IN", "Allen");
                    }
                    catch { }


                    TaxTime = DateTime.Now.ToString("HH:mm:ss");
                    driver.Quit();
                    gc.mergpdf(orderNumber, "IN", "Allen");
                    LastEndTime = DateTime.Now.ToString("HH:mm:ss");
                    gc.insert_TakenTime(orderNumber, "IN", "Allen", StartTime, AssessmentTime, TaxTime, CitytaxTime, LastEndTime);
                    return("Data Inserted Successfully");
                }
                catch (Exception ex)
                {
                    driver.Quit();
                    GlobalClass.LogError(ex, orderNumber);
                    throw ex;
                }
            }
        }
Beispiel #29
0
        public string FTP_KootenaiID(string streetno, string direction, string streetname, string city, string streettype, string unitnumber, string ownernm, string parcelNumber, string searchType, string orderNumber, string directParcel)
        {
            GlobalClass.global_orderNo             = orderNumber;
            HttpContext.Current.Session["orderNo"] = orderNumber;
            GlobalClass.global_parcelNo            = parcelNumber;
            string StartTime = "", AssessmentTime = "", TaxTime = "", CitytaxTime = "", LastEndTime = "";
            string address       = "";
            var    driverService = PhantomJSDriverService.CreateDefaultService();

            driverService.HideCommandPromptWindow = true;
            //driver = new ChromeDriver();
            //driver = new PhantomJSDriver();
            string Propertyresult1;

            using (driver = new PhantomJSDriver())
            {
                try
                {
                    if (searchType == "titleflex")
                    {
                        address = streetno + " " + direction + " " + streetname;
                        gc.TitleFlexSearch(orderNumber, "", "", address.Trim(), "ID", "Kootenai");
                        if ((HttpContext.Current.Session["TitleFlex_Search"] != null && HttpContext.Current.Session["TitleFlex_Search"].ToString() == "Yes"))
                        {
                            driver.Quit();
                            return("MultiParcel");
                        }
                        else if (HttpContext.Current.Session["titleparcel"].ToString() == "")
                        {
                            HttpContext.Current.Session["Nodata_Kootenai"] = "Yes";
                            driver.Quit();
                            return("No Data Found");
                        }
                        parcelNumber = HttpContext.Current.Session["titleparcel"].ToString();
                        searchType   = "parcel";
                    }
                    driver.Navigate().GoToUrl("http://id-kootenai-assessor.governmax.com/propertymax/agency/id-kootenai-assessor/ID-Kootenai_Homepage2017.asp?sid=D6D1FB69FDAD40A7A8E723B0B36DB4D7");
                    IWebElement Firstclick = driver.FindElement(By.XPath("/html/body/table[2]/tbody/tr[2]/td[2]/table/tbody/tr/td/table/tbody/tr/td/table[1]/tbody/tr[1]/td[2]/table/tbody"));
                    IWebElement Firstaherf = Firstclick.FindElement(By.TagName("a"));
                    string      First1     = Firstclick.GetAttribute("href");
                    Firstaherf.Click();

                    if (searchType == "address")
                    {
                        if (direction == "")
                        {
                            address = streetno.Trim() + " " + streetname.Trim() + " " + streettype.Trim();
                        }
                        else
                        {
                            address = streetno.Trim() + " " + direction.Trim() + " " + streetname.Trim() + " " + streettype.Trim();
                        }
                        driver.FindElement(By.XPath("/html/body/table[2]/tbody/tr[2]/td[2]/table/tbody/tr/td/table/tbody/tr/td/table/tbody/tr[1]/td/table/tbody/tr/td/table/tbody/tr[2]/td/font/input")).SendKeys(address);
                        gc.CreatePdf_WOP(orderNumber, "AddressSearch", driver, "ID", "Kootenai");
                        Thread.Sleep(3000);
                        driver.FindElement(By.XPath("/html/body/table[2]/tbody/tr[2]/td[2]/table/tbody/tr/td/table/tbody/tr/td/table/tbody/tr[3]/td/input")).SendKeys(Keys.Enter);
                        Thread.Sleep(2000);
                        gc.CreatePdf_WOP(orderNumber, "AddressSearch After", driver, "ID", "Kootenai");
                        try
                        {
                            string Multiplowner = driver.FindElement(By.XPath("/html/body/table[2]/tbody/tr[1]/td[2]/table/tbody/tr/td/table/tbody/tr/td[2]/table/tbody")).Text.Replace("\r\n", "");
                            Thread.Sleep(2000);

                            IWebElement         Multipleownertable = driver.FindElement(By.XPath("/html/body/table[2]/tbody/tr[2]/td[2]/table/tbody/tr/td/table[1]/tbody/tr/td/table/tbody"));
                            IList <IWebElement> Multiplerow        = Multipleownertable.FindElements(By.TagName("tr"));
                            IList <IWebElement> Multipleid;
                            if (Multiplerow.Count < 27)
                            {
                                foreach (IWebElement Multipleownername in Multiplerow)
                                {
                                    Multipleid = Multipleownername.FindElements(By.TagName("td"));
                                    if (Multipleid.Count != 0 && !Multipleownername.Text.Contains("Parcel ID"))
                                    {
                                        string Parcel = Multipleid[0].Text;
                                        string detail = Multipleid[1].Text + "~" + Multipleid[2].Text;
                                        gc.insert_date(orderNumber, Parcel, 750, detail, 1, DateTime.Now);
                                    }
                                }
                                gc.CreatePdf_WOP(orderNumber, "Multiple Parcel", driver, "ID", "Kootenai");
                                HttpContext.Current.Session["multiParcel_Kootenai"] = "Yes";
                                driver.Quit();
                                return("MultiParcel");
                            }
                            if (Multiplerow.Count > 27)
                            {
                                HttpContext.Current.Session["multiParcel_Kootenai_Multicount"] = "Maximum";
                                gc.CreatePdf_WOP(orderNumber, "MultyAddressSearch", driver, "ID", "Kootenai");

                                driver.Quit();
                                return("Maximum");
                            }
                        }
                        catch { }
                        try
                        {
                            string Nodata = driver.FindElement(By.XPath("/html/body/table[2]/tbody/tr[2]/td[2]/table/tbody/tr/td/table[1]/tbody/tr/td/table/tbody/tr[2]/td")).Text;
                            if (Nodata.Contains("No Records Found"))
                            {
                                gc.CreatePdf_WOP(orderNumber, "NO Record", driver, "ID", "Kootenai");
                                HttpContext.Current.Session["Nodata_Kootenai"] = "Yes";
                                driver.Quit();
                                return("No Data Found");
                            }
                        }
                        catch { }
                    }
                    if (searchType == "parcel")
                    {
                        if (parcelNumber != "")
                        {
                            driver.FindElement(By.LinkText("   Parcel Number")).SendKeys(Keys.Enter);
                            Thread.Sleep(2000);
                            driver.FindElement(By.XPath("/html/body/table[2]/tbody/tr[2]/td[2]/table/tbody/tr/td/table/tbody/tr/td/table/tbody/tr[1]/td/table/tbody/tr/td/table/tbody/tr[2]/td/font/input")).SendKeys(parcelNumber);
                            gc.CreatePdf(orderNumber, parcelNumber, "Property Search Result", driver, "ID", "Kootenai");
                            driver.FindElement(By.XPath("/html/body/table[2]/tbody/tr[2]/td[2]/table/tbody/tr/td/table/tbody/tr/td/table/tbody/tr[2]/td/input")).SendKeys(Keys.Enter);
                            Thread.Sleep(2000);
                        }
                        if (parcelNumber == "")
                        {
                            try
                            {
                                string Nodata = driver.FindElement(By.XPath("/html/body/table[2]/tbody/tr[2]/td[2]/table/tbody/tr/td/table[1]/tbody/tr/td/table/tbody/tr[2]/td")).Text;
                                if (Nodata.Contains("No Records Found"))
                                {
                                    HttpContext.Current.Session["Nodata_Kootenai"] = "Yes";
                                    driver.Quit();
                                    return("No Records Found");
                                }
                            }
                            catch { }
                        }
                    }
                    if (searchType == "unitnumber")
                    {
                        driver.FindElement(By.LinkText("   AIN")).SendKeys(Keys.Enter);
                        Thread.Sleep(2000);
                        driver.FindElement(By.XPath("/html/body/table[2]/tbody/tr[2]/td[2]/table/tbody/tr/td/table/tbody/tr/td/table/tbody/tr[2]/td/table/tbody/tr/td/table/tbody/tr[2]/td/font/input")).SendKeys(unitnumber);
                        gc.CreatePdf_WOP(orderNumber, "unitnumber", driver, "ID", "Kootenai");
                        driver.FindElement(By.XPath("/html/body/table[2]/tbody/tr[2]/td[2]/table/tbody/tr/td/table/tbody/tr/td/table/tbody/tr[3]/td/input")).SendKeys(Keys.Enter);
                        Thread.Sleep(2000);
                    }
                    if (searchType == "owner")
                    {
                        driver.FindElement(By.LinkText("   Owner")).SendKeys(Keys.Enter);
                        Thread.Sleep(2000);
                        driver.FindElement(By.XPath("/html/body/table[2]/tbody/tr[2]/td[2]/table/tbody/tr/td/table/tbody/tr/td/table/tbody/tr[2]/td/table/tbody/tr/td/table/tbody/tr[2]/td/font/input")).SendKeys(ownernm);
                        driver.FindElement(By.XPath("/html/body/table[2]/tbody/tr[2]/td[2]/table/tbody/tr/td/table/tbody/tr/td/table/tbody/tr[3]/td/input")).SendKeys(Keys.Enter);
                        Thread.Sleep(2000);
                        try
                        {
                            string Multiplowner = driver.FindElement(By.XPath("/html/body/table[2]/tbody/tr[1]/td[2]/table/tbody/tr/td/table/tbody/tr/td[2]/table/tbody")).Text.Replace("\r\n", "");
                            // string Multicoutpage=
                            Thread.Sleep(2000);
                            if (Multiplowner.Contains("page1 of 1"))

                            {
                                IWebElement         Multipleownertable = driver.FindElement(By.XPath("/html/body/table[2]/tbody/tr[2]/td[2]/table/tbody/tr/td/table[1]/tbody/tr/td/table/tbody"));
                                IList <IWebElement> Multiplerow        = Multipleownertable.FindElements(By.TagName("tr"));
                                IList <IWebElement> Multipleid;
                                if (Multiplerow.Count < 27)
                                {
                                    foreach (IWebElement Multipleownername in Multiplerow)
                                    {
                                        Multipleid = Multipleownername.FindElements(By.TagName("td"));
                                        if (Multipleid.Count != 0 && !Multipleownername.Text.Contains("Parcel ID"))
                                        {
                                            string Parcel = Multipleid[0].Text;
                                            string detail = Multipleid[1].Text + "~" + Multipleid[2].Text;
                                            gc.insert_date(orderNumber, Parcel, 750, detail, 1, DateTime.Now);
                                        }
                                    }
                                    gc.CreatePdf_WOP(orderNumber, "Multiple Parcel", driver, "ID", "Kootenai");
                                    HttpContext.Current.Session["multiParcel_Kootenai"] = "Yes";
                                    driver.Quit();
                                    return("MultiParcel");
                                }
                                if (Multiplerow.Count > 27)
                                {
                                    HttpContext.Current.Session["multiParcel_Kootenai_Multicount"] = "Maximum";
                                    gc.CreatePdf_WOP(orderNumber, "MultyAddressSearch", driver, "ID", "Kootenai");

                                    driver.Quit();
                                    return("Maximum");
                                }
                            }
                            else
                            {
                                HttpContext.Current.Session["multiParcel_Kootenai_Multicount"] = "Maximum";
                                gc.CreatePdf_WOP(orderNumber, "MultyAddressSearch", driver, "ID", "Kootenai");
                                driver.Quit();
                                return("Maximum");
                            }
                        }
                        catch { }
                        try
                        {
                            string Nodata = driver.FindElement(By.XPath("/html/body/table[2]/tbody/tr[2]/td[2]/table/tbody/tr/td/table[1]/tbody/tr/td/table/tbody/tr[2]/td")).Text;
                            if (Nodata.Contains("No Records Found"))
                            {
                                HttpContext.Current.Session["Nodata_Kootenai"] = "Yes";
                                driver.Quit();
                                return("No Records Found");
                            }
                        }
                        catch { }
                    }

                    IWebElement         Propertytable1    = driver.FindElement(By.XPath("/html/body/table[2]/tbody/tr[2]/td[2]/table/tbody/tr/td/table[1]/tbody"));
                    IList <IWebElement> Propertytable1row = Propertytable1.FindElements(By.TagName("tr"));
                    IList <IWebElement> Propertytableid;
                    foreach (IWebElement Property1 in Propertytable1row)
                    {
                        Propertytableid = Property1.FindElements(By.TagName("td"));
                        if (Propertytableid.Count != 0 && !Property1.Text.Contains("Parcel Number "))
                        {
                            Parcel_number   = Propertytableid[0].Text;
                            Ain             = Propertytableid[1].Text;
                            PropertyAddress = Propertytableid[2].Text;

                            break;
                        }
                    }


                    //Property
                    IWebElement Propertytable2    = driver.FindElement(By.XPath("/html/body/table[2]/tbody/tr[2]/td[2]/table/tbody/tr/td/table[2]/tbody"));
                    string      OwnerName         = gc.Between(Propertytable2.Text, "Owner Name ", "Owner Address ").Trim();
                    string      MailingAddress    = gc.Between(Propertytable2.Text, "Owner Address ", "Transfer Date ");
                    string      TaxAuthorityGroup = gc.Between(Propertytable2.Text, "Tax Authority Group ", "Situs Address ").Trim();
                    string      Acreage           = gc.Between(Propertytable2.Text, "Acreage ", "Current Legal Desc. ").Trim();
                    string      LegalDescription  = gc.Between(Propertytable2.Text, "Current Legal Desc. ", "Parcel Type ").Trim();
                    string      PropertyClass     = gc.Between(Propertytable2.Text, "Property Class Code ", "Neighborhood Code ").Trim();
                    string      Neighborhood      = gc.Between(Propertytable2.Text, "Neighborhood Code ", "Assessment Information ").Trim();
                    driver.FindElement(By.XPath("/html/body/table[2]/tbody/tr[1]/td[1]/table/tbody/tr[2]/td/table/tbody/tr[6]/td/font/a")).SendKeys(Keys.Enter);
                    Thread.Sleep(2000);
                    try
                    {
                        YearBuilt = driver.FindElement(By.XPath("/html/body/table[2]/tbody/tr[2]/td[2]/table/tbody/tr/td/table[2]/tbody/tr/td/table/tbody/tr[3]/td[8]/font")).Text;
                    }
                    catch { }
                    Propertyresult1 = Ain + "~" + PropertyAddress + "~" + OwnerName + "~" + MailingAddress + "~" + TaxAuthorityGroup + "~" + Acreage + "~" + LegalDescription + "~" + PropertyClass + "~" + Neighborhood + "~" + YearBuilt;
                    gc.insert_date(orderNumber, Parcel_number, 720, Propertyresult1, 1, DateTime.Now);
                    gc.CreatePdf(orderNumber, Parcel_number, "Property Search Result", driver, "ID", "Kootenai");
                    driver.FindElement(By.XPath("/html/body/table[2]/tbody/tr[1]/td[1]/table/tbody/tr[2]/td/table/tbody/tr[3]/td/font/a")).Click();
                    Thread.Sleep(2000);
                    gc.CreatePdf(orderNumber, Parcel_number, "Assessment", driver, "ID", "Kootenai");
                    try
                    {
                        IWebElement         Assisementdetail    = driver.FindElement(By.XPath("/html/body/table[2]/tbody/tr[2]/td[2]/table/tbody/tr/td/table[2]/tbody/tr/td/table[5]/tbody"));
                        IList <IWebElement> Assisementdetailrow = Assisementdetail.FindElements(By.TagName("tr"));
                        IList <IWebElement> Assisementdetailid;
                        foreach (IWebElement Assisement in Assisementdetailrow)
                        {
                            Assisementdetailid = Assisement.FindElements(By.TagName("td"));
                            if (Assisementdetailid.Count != 0 && !Assisement.Text.Contains("Assessment Information ") && Assisement.Text.Trim() != "")
                            {
                                if (!heading.Contains(Assisementdetailid[2].Text.Trim()))
                                {
                                    if (!Assisement.Text.Contains("Current Year "))
                                    {
                                        heading += Assisementdetailid[2].Text.Trim() + "~";
                                    }
                                    Assisementresult1 += Assisementdetailid[3].Text.Trim() + "~";
                                    Assisementresult2 += Assisementdetailid[5].Text.Trim() + "~";
                                }
                            }
                        }
                        db.ExecuteQuery("update data_field_master set Data_Fields_Text='" + "Year" + "~" + heading.Remove(heading.Length - 1, 1) + "' where Id = '" + 730 + "'");
                        gc.insert_date(orderNumber, Parcel_number, 730, Assisementresult1.Remove(Assisementresult1.Length - 1), 1, DateTime.Now);
                        gc.insert_date(orderNumber, Parcel_number, 730, Assisementresult2.Remove(Assisementresult2.Length - 1), 1, DateTime.Now);
                    }
                    catch { }
                    //Assessnment History
                    driver.FindElement(By.XPath("/html/body/table[2]/tbody/tr[1]/td[1]/table/tbody/tr[2]/td/table/tbody/tr[7]/td/font/a")).SendKeys(Keys.Enter);
                    Thread.Sleep(2000);
                    gc.CreatePdf(orderNumber, Parcel_number, "Assessment History", driver, "ID", "Kootenai");

                    IWebElement         AssessmentHistrytable = driver.FindElement(By.XPath("/html/body/table[2]/tbody/tr[2]/td[2]/table/tbody/tr/td/table[2]/tbody/tr/td/table[2]/tbody"));
                    IList <IWebElement> Assessmenthistryrow   = AssessmentHistrytable.FindElements(By.TagName("tr"));
                    IList <IWebElement> Assessmenthistryid;
                    foreach (IWebElement Assmenthistory in Assessmenthistryrow)
                    {
                        Assessmenthistryid = Assmenthistory.FindElements(By.TagName("td"));
                        if (Assessmenthistryid.Count != 0 && !Assmenthistory.Text.Contains("Assessment Date"))
                        {
                            string Assessmenthistoryresult = Assessmenthistryid[0].Text + "~" + Assessmenthistryid[1].Text + "~" + Assessmenthistryid[2].Text + "~" + Assessmenthistryid[3].Text + "~" + Assessmenthistryid[4].Text + "~" + Assessmenthistryid[5].Text;
                            gc.insert_date(orderNumber, Parcel_number, 737, Assessmenthistoryresult, 1, DateTime.Now);
                        }
                    }

                    //tax information

                    try
                    {
                        //Tax Authority
                        driver.Navigate().GoToUrl("http://id-kootenai-treasurer.governmax.com/collectmax/agency/id-kootenai-treasurer/homepage2017.asp?sid=49B81F6AF42C4778B7357D97F7DE9C95");
                        driver.FindElement(By.XPath("/html/body/table[2]/tbody/tr[2]/td[2]/table/tbody/tr/td/table/tbody/tr[1]/td/p[2]/a")).SendKeys(Keys.Enter);
                        Thread.Sleep(2000);
                        driver.FindElement(By.LinkText("   Contact Us")).SendKeys(Keys.Enter);
                        Thread.Sleep(2000);
                        gc.CreatePdf(orderNumber, Parcel_number, "Tax author", driver, "ID", "Kootenai");
                        IWebElement         TaxAuthoritytable = driver.FindElement(By.XPath("/html/body/table[2]/tbody/tr[2]/td[2]/table/tbody/tr/td/table[2]/tbody"));
                        IList <IWebElement> Taxauthorityrow   = TaxAuthoritytable.FindElements(By.TagName("tr"));
                        IList <IWebElement> Taxauthorityid;
                        foreach (IWebElement taxauthority in Taxauthorityrow)
                        {
                            Taxauthorityid = taxauthority.FindElements(By.TagName("td"));
                            if (Taxauthorityid.Count != 0 && taxauthority.Text.Contains("Kootenai"))
                            {
                                taxauthorityResult = Taxauthorityid[0].Text.Trim().Replace("\r,\n", " ");
                                break;
                            }
                        }
                        //end
                    }
                    catch { }
                    driver.Navigate().GoToUrl("http://id-kootenai-treasurer.governmax.com/collectmax/agency/id-kootenai-treasurer/homepage2017.asp?sid=49B81F6AF42C4778B7357D97F7DE9C95");
                    gc.CreatePdf(orderNumber, Parcel_number, "Current TAx1", driver, "ID", "Kootenai");
                    driver.FindElement(By.XPath("/html/body/table[2]/tbody/tr[2]/td[2]/table/tbody/tr/td/table/tbody/tr[1]/td/p[2]/a")).Click();
                    Thread.Sleep(4000);
                    gc.CreatePdf(orderNumber, Parcel_number, "Current TAx2", driver, "ID", "Kootenai");
                    driver.FindElement(By.XPath("/html/body/table[2]/tbody/tr[2]/td[2]/table/tbody/tr/td/table/tbody/tr/td/table/tbody/tr[1]/td/table/tbody/tr/td/table/tbody/tr[2]/td/font/input")).SendKeys(Parcel_number);
                    gc.CreatePdf(orderNumber, Parcel_number, "Current TAx3", driver, "ID", "Kootenai");
                    driver.FindElement(By.XPath("/html/body/table[2]/tbody/tr[2]/td[2]/table/tbody/tr/td/table/tbody/tr/td/table/tbody/tr[3]/td/input")).SendKeys(Keys.Enter);
                    Thread.Sleep(6000);
                    gc.CreatePdf(orderNumber, Parcel_number, "Current TAx4", driver, "ID", "Kootenai");
                    try
                    {
                        driver.FindElement(By.XPath("/html/body/table[2]/tbody/tr[2]/td[2]/table/tbody/tr/td/table[1]/tbody/tr[2]/td/table/tbody/tr[2]/td/font/b/a")).Click();
                        Thread.Sleep(7000);
                    }
                    catch { }
                    string TaxRoll = driver.FindElement(By.XPath("//*[@id='form1']/table/tbody/tr[1]/td/table[2]/tbody/tr[2]/td[3]/font")).Text;
                    gc.insert_date(orderNumber, Parcel_number, 741, TaxRoll + "~" + taxauthorityResult, 1, DateTime.Now);
                    //Current Tax table
                    gc.CreatePdf(orderNumber, Parcel_number, "Current TAx", driver, "ID", "Kootenai");
                    IWebElement         currenttaxtable = driver.FindElement(By.XPath("//*[@id='tabsummary']/table/tbody/tr[1]/td/table/tbody"));
                    string              TaxYear         = gc.Between(currenttaxtable.Text, "TaxYear: ", "Bill Number").Trim();
                    string              BillNumber      = gc.Between(currenttaxtable.Text, "Bill Number:", "Tax Bill ID:").Trim();
                    string              TaxBillID       = gc.Between(currenttaxtable.Text, "Tax Bill ID:", "Installment ").Trim();
                    IList <IWebElement> currenttaxrow   = currenttaxtable.FindElements(By.TagName("tr"));
                    IList <IWebElement> currenttaxid;
                    foreach (IWebElement currenttax in currenttaxrow)
                    {
                        currenttaxid = currenttax.FindElements(By.TagName("td"));
                        if (currenttax.Text.Contains("Prior Year Taxes Due "))
                        {
                            break;
                        }
                        if (currenttaxid.Count > 2 && !currenttax.Text.Contains("TaxYear") && !currenttax.Text.Contains("Period"))
                        {
                            string currentaxresult1 = TaxYear + "~" + BillNumber + "~" + TaxBillID + "~" + currenttaxid[0].Text + "~" + currenttaxid[1].Text + "~" + currenttaxid[2].Text + "~" + currenttaxid[3].Text + "~" + currenttaxid[4].Text + "~" + currenttaxid[5].Text;
                            gc.insert_date(orderNumber, Parcel_number, 743, currentaxresult1, 1, DateTime.Now);
                        }
                        if (currenttaxid.Count == 1 && !currenttax.Text.Contains("Installment"))
                        {
                            string currenttaxresult2 = TaxYear + "~" + BillNumber + "~" + TaxBillID + "~" + "~" + "~" + currenttaxid[0].Text + "~" + "~";
                            gc.insert_date(orderNumber, Parcel_number, 743, currenttaxresult2, 1, DateTime.Now);
                        }
                        if (currenttaxid.Count == 2 && !currenttax.Text.Contains("Installment"))
                        {
                            string currenttaxresult2 = TaxYear + "~" + BillNumber + "~" + TaxBillID + "~" + currenttaxid[0].Text + "~" + "~" + "~" + "~" + "~" + currenttaxid[1].Text;
                            gc.insert_date(orderNumber, Parcel_number, 743, currenttaxresult2, 1, DateTime.Now);
                        }
                    }
                    //delinquenttax
                    IWebElement         delinquenttaxtable = driver.FindElement(By.XPath("//*[@id='tabsummary']/table/tbody/tr[2]/td/table/tbody"));
                    IList <IWebElement> deliquenttaxrow    = delinquenttaxtable.FindElements(By.TagName("tr"));
                    IList <IWebElement> deliquenttaxid;
                    foreach (IWebElement deliquent in deliquenttaxrow)
                    {
                        deliquenttaxid = deliquent.FindElements(By.TagName("td"));
                        if (deliquenttaxid.Count > 2 && !deliquent.Text.Contains("Prior Year Taxes Due ") && !deliquent.Text.Contains("Year"))
                        {
                            string deliquentresult = deliquenttaxid[0].Text + "~" + deliquenttaxid[1].Text + "~" + deliquenttaxid[2].Text + "~" + deliquenttaxid[3].Text + "~" + deliquenttaxid[4].Text + "~" + deliquenttaxid[5].Text;
                            gc.insert_date(orderNumber, Parcel_number, 744, deliquentresult, 1, DateTime.Now);
                        }
                        if (deliquenttaxid.Count == 1 && !deliquent.Text.Contains("Prior Year Taxes Due") && !deliquent.Text.Contains("Delinquent Years"))
                        {
                            string deliquentresult1 = "~" + "~" + "~" + deliquenttaxid[0].Text + "~";
                            gc.insert_date(orderNumber, Parcel_number, 744, deliquentresult1, 1, DateTime.Now);
                        }
                        if (deliquenttaxid.Count == 2 && !deliquent.Text.Contains("Prior Year Taxes Due"))
                        {
                            string deliquentresult1 = deliquenttaxid[0].Text + "~" + "~" + "~" + "~" + "~" + deliquenttaxid[1].Text;
                            gc.insert_date(orderNumber, Parcel_number, 744, deliquentresult1, 1, DateTime.Now);
                        }
                    }
                    //Assessment tax
                    driver.FindElement(By.LinkText("View Tax Assessment Values")).SendKeys(Keys.Enter);
                    Thread.Sleep(5000);
                    gc.CreatePdf(orderNumber, Parcel_number, "Assessment Values", driver, "ID", "Kootenai");
                    try
                    {
                        IWebElement         Assessmenttableinfo = driver.FindElement(By.XPath("//*[@id='tab_assmt_data_" + TaxBillID + "']/table"));
                        IList <IWebElement> Assessmentrow       = Assessmenttableinfo.FindElements(By.TagName("tr"));
                        IList <IWebElement> Assessmentid;
                        foreach (IWebElement Assessmentinfo in Assessmentrow)
                        {
                            Assessmentid = Assessmentinfo.FindElements(By.TagName("td"));
                            {
                                if (Assessmentid.Count > 2 && !Assessmentinfo.Text.Contains("Authority"))
                                {
                                    string Assessmentinforesult = Assessmentid[0].Text + "~" + Assessmentid[1].Text + "~" + Assessmentid[2].Text + "~" + Assessmentid[3].Text + "~" + Assessmentid[4].Text + "~" + Assessmentid[5].Text + "~" + Assessmentid[6].Text + "~" + Assessmentid[7].Text;
                                    gc.insert_date(orderNumber, Parcel_number, 746, Assessmentinforesult, 1, DateTime.Now);
                                }
                                if (Assessmentid.Count == 1 && !Assessmentinfo.Text.Contains("Assessment Information"))
                                {
                                    string Assessmentinforesult1 = Assessmentid[0].Text;
                                    gc.insert_date(orderNumber, Parcel_number, 746, Assessmentinforesult1, 1, DateTime.Now);
                                }
                                if (Assessmentid.Count == 2)
                                {
                                    string Assessmentinforesult = Assessmentid[0].Text + "~" + "~" + "~" + "~" + "~" + "~" + "~" + Assessmentid[1].Text;
                                    gc.insert_date(orderNumber, Parcel_number, 746, Assessmentinforesult, 1, DateTime.Now);
                                }
                            }
                        }
                    }
                    catch
                    {
                    }
                    string paymenthistoryresult = "";
                    //Paymenthistorytax
                    driver.FindElement(By.LinkText("View Payment History")).SendKeys(Keys.Enter);
                    Thread.Sleep(5000);
                    gc.CreatePdf(orderNumber, Parcel_number, "Payment Hiistory", driver, "ID", "Kootenai");
                    IWebElement         Paymenthistorytable = driver.FindElement(By.XPath("//*[@id='tab_pmt_data']/table/tbody"));
                    IList <IWebElement> Paymenthistoryrow   = Paymenthistorytable.FindElements(By.TagName("tr"));
                    IList <IWebElement> paymenthistoryid;
                    foreach (IWebElement Paymenthistory in Paymenthistoryrow)
                    {
                        paymenthistoryid = Paymenthistory.FindElements(By.TagName("td"));
                        if (paymenthistoryid.Count > 2 && !Paymenthistory.Text.Contains("Payment Information") && !Paymenthistory.Text.Contains("Last Paid"))
                        {
                            paymenthistoryresult = paymenthistoryid[0].Text + "~" + paymenthistoryid[1].Text + "~" + paymenthistoryid[2].Text + "~" + paymenthistoryid[3].Text;
                        }
                        if (paymenthistoryid.Count == 2)
                        {
                            paymenthistoryresult += "~" + paymenthistoryid[1].Text;
                            gc.insert_date(orderNumber, Parcel_number, 747, paymenthistoryresult, 1, DateTime.Now);
                        }
                    }
                    TaxTime     = DateTime.Now.ToString("HH:mm:ss");
                    LastEndTime = DateTime.Now.ToString("HH:mm:ss");
                    gc.mergpdf(orderNumber, "ID", "Kootenai");
                    driver.Quit();

                    return("Data Inserted Successfully");
                }
                catch (Exception ex)
                {
                    driver.Quit();
                    throw ex;
                }
            }
        }
        public string FTP_Saline(string streetno, string streettype, string streetname, string unitnumber, string ownernm, string parcelNumber, string searchType, string orderNumber, string directParcel)
        {
            GlobalClass.global_orderNo             = orderNumber;
            HttpContext.Current.Session["orderNo"] = orderNumber;
            GlobalClass.global_parcelNo            = parcelNumber;
            string StartTime = "", AssessmentTime = "", TaxTime = "", CitytaxTime = "", LastEndTime = "";
            var    driverService = PhantomJSDriverService.CreateDefaultService();

            driverService.HideCommandPromptWindow = true;
            using (driver = new PhantomJSDriver())
            {
                try
                {
                    StartTime = DateTime.Now.ToString("HH:mm:ss");
                    if (searchType == "titleflex")
                    {
                        string address = streetno + " " + streettype + " " + streetname + " " + unitnumber;
                        gc.TitleFlexSearch(orderNumber, parcelNumber, "", address, "AR", "Saline");
                        if ((HttpContext.Current.Session["TitleFlex_Search"] != null && HttpContext.Current.Session["TitleFlex_Search"].ToString() == "Yes"))
                        {
                            driver.Quit();
                            return("MultiParcel");
                        }
                        else if (HttpContext.Current.Session["titleparcel"].ToString() == "")
                        {
                            HttpContext.Current.Session["Nodata_SalineAR"] = "Yes";
                            driver.Quit();
                            return("No Data Found");
                        }
                        parcelNumber = HttpContext.Current.Session["titleparcel"].ToString();
                        searchType   = "parcel";
                    }
                    driver.Navigate().GoToUrl("https://www.arcountydata.com/county.asp?county=Saline");
                    driver.FindElement(By.XPath("//*[@id='Assessor']/div/div[2]/a")).SendKeys(Keys.Enter);
                    Thread.Sleep(2000);
                    if (searchType == "address")
                    {
                        driver.FindElement(By.Id("StreetNumber")).SendKeys(streetno);
                        driver.FindElement(By.Id("StreetName")).SendKeys(streetname);
                        gc.CreatePdf_WOP(orderNumber, "SearchBefore", driver, "AR", "Saline");
                        driver.FindElement(By.Id("Search")).SendKeys(Keys.Enter);
                        gc.CreatePdf_WOP(orderNumber, "SearchAfter", driver, "AR", "Saline");
                        Thread.Sleep(2000);

                        try
                        {
                            Addressmax = driver.FindElement(By.XPath("/html/body/div[2]/div[2]/div[2]/table/tbody/tr[1]/td[2]")).Text.Trim();
                            if (Convert.ToInt32(Addressmax) == 1 && Convert.ToInt32(Addressmax) != 0)
                            {
                                driver.FindElement(By.XPath("//*[@id='parcel_report']/table/tbody/tr[2]/td[1]/a")).SendKeys(Keys.Enter);
                                Thread.Sleep(2000);
                                gc.CreatePdf_WOP(orderNumber, "AddressSearch Result", driver, "AR", "Saline");
                            }
                            else
                            {
                                Multiple(driver, orderNumber, Addressmax);
                                driver.Quit();
                                return("MultiParcel");
                            }
                        }
                        catch { }
                    }

                    if (searchType == "parcel")
                    {
                        driver.FindElement(By.Id("ParcelNumber")).SendKeys(parcelNumber);
                        driver.FindElement(By.Id("Search")).SendKeys(Keys.Enter);
                        gc.CreatePdf(orderNumber, parcelNumber, "SearchParcel Before", driver, "AR", "Saline");
                        Thread.Sleep(2000);
                        try
                        {
                            driver.FindElement(By.XPath("//*[@id='parcel_report']/table/tbody/tr[2]/td[1]/a")).SendKeys(Keys.Enter);
                            gc.CreatePdf(orderNumber, parcelNumber, "SearchParcel After", driver, "AR", "Saline");
                            Thread.Sleep(2000);
                        }
                        catch { }
                    }
                    if (searchType == "ownername")
                    {
                        driver.FindElement(By.Id("OwnerName")).SendKeys(ownernm);
                        driver.FindElement(By.Id("Search")).SendKeys(Keys.Enter);
                        Thread.Sleep(2000);
                        gc.CreatePdf_WOP(orderNumber, "Searchownername After", driver, "AR", "Saline");
                        try
                        {
                            Addressmax = driver.FindElement(By.XPath("/html/body/div[2]/div[2]/div[2]/table/tbody/tr[1]/td[2]")).Text.Trim();
                            if (Convert.ToInt32(Addressmax) == 1 && Convert.ToInt32(Addressmax) != 0)
                            {
                                driver.FindElement(By.XPath("//*[@id='parcel_report']/table/tbody/tr[2]/td[1]/a")).SendKeys(Keys.Enter);
                                Thread.Sleep(2000);
                            }
                            else
                            {
                                Multiple(driver, orderNumber, Addressmax);
                                driver.Quit();
                                return("MultiParcel");
                            }
                        }
                        catch { }
                    }

                    try
                    {
                        IWebElement INodata = driver.FindElement(By.XPath("/html/body/div[2]/div[2]"));
                        if (INodata.Text.Contains("Nothing matching your search criteria was found"))
                        {
                            HttpContext.Current.Session["Nodata_SalineAR"] = "Yes";
                            driver.Quit();
                            return("No Data Found");
                        }
                    }
                    catch { }

                    // Property_Details
                    string CountyName, OwnerDetails, MailingAddress, PropertyAddress, TotalAcres, SecTwp_Rng, Subdivision, LegalDescription, SchoolDistrict, HomesteadParcel, TaxStatus, Over;
                    // driver.FindElement(By.XPath("//*[@id='parcel_report']/table/tbody/tr[2]/td[1]/a")).SendKeys(Keys.Enter);
                    //Thread.Sleep(2000);
                    IWebElement Propertydetailtabel = driver.FindElement(By.XPath("//*[@id='Basic']/div/div[2]/table/tbody"));
                    parcel_number = gc.Between(Propertydetailtabel.Text, "Parcel Number:", "County Name:");
                    gc.CreatePdf(orderNumber, parcel_number, "PropertyDetailTabel", driver, "AR", "Saline");
                    CountyName = gc.Between(Propertydetailtabel.Text, "County Name:", "Mailing Address:");
                    string MOwnerDetails1 = driver.FindElement(By.XPath("//*[@id='Basic']/div/div[2]/table/tbody/tr[3]/td[2]")).Text;
                    MOwnerDetails1 = MOwnerDetails1.Replace("\r\n", "~");
                    string[] Mownersplit = MOwnerDetails1.Split('~');
                    OwnerDetails   = Mownersplit[0];
                    MailingAddress = Mownersplit[1] + " " + Mownersplit[2];
                    string PropertyAddress1 = driver.FindElement(By.XPath("//*[@id='Basic']/div/div[2]/table/tbody/tr[4]/td[2]")).Text;
                    PropertyAddress1 = PropertyAddress1.Replace("\r\n", "~");
                    string[] propertyaddresssplit = PropertyAddress1.Split('~');
                    PropertyAddress = propertyaddresssplit[1] + " " + propertyaddresssplit[2];

                    TotalAcres       = gc.Between(Propertydetailtabel.Text, "Total Acres:", "Timber Acres:");
                    SecTwp_Rng       = gc.Between(Propertydetailtabel.Text, "Sec-Twp-Rng:", "Lot/Block:");
                    Subdivision      = gc.Between(Propertydetailtabel.Text, "Subdivision:", "Legal Description:");
                    LegalDescription = gc.Between(Propertydetailtabel.Text, "Legal Description:", "School District:");
                    SchoolDistrict   = driver.FindElement(By.XPath("//*[@id='Basic']/div/div[2]/table/tbody/tr[12]/td[2]")).Text; //gc.Between(Propertydetailtabel.Text, "School District:", "Improvement Districts:");
                    HomesteadParcel  = gc.Between(Propertydetailtabel.Text, "Homestead Parcel?:", "Tax Status:");
                    TaxStatus        = gc.Between(Propertydetailtabel.Text, "Tax Status:", "Over 65?:");
                    Over             = GlobalClass.After(Propertydetailtabel.Text, "Over 65?:");
                    IWebElement YearBuilddata = driver.FindElement(By.XPath("/html/body/div[2]/div[3]/div/ul/li[7]/a"));

                    // driver.FindElement(By.XPath("/html/body/div[2]/div[3]/div/ul/li[7]/a")).SendKeys(Keys.Enter);

                    try
                    {
                        driver.FindElement(By.LinkText("Improvements")).SendKeys(Keys.Enter);
                        Thread.Sleep(2000);
                        gc.CreatePdf(orderNumber, parcel_number, "YearBuild", driver, "AR", "Saline");
                        Yearbuild = driver.FindElement(By.XPath("//*[@id='Improvements']/div/div[2]/table/tbody/tr[10]/td[2]")).Text;
                    }
                    catch { }
                    string Property_Details = CountyName + "~" + OwnerDetails + "~" + MailingAddress + "~" + PropertyAddress + "~" + TotalAcres + "~" + SecTwp_Rng + "~" + Subdivision + "~" + LegalDescription + "~" + SchoolDistrict + "~" + HomesteadParcel + "~" + TaxStatus + "~" + Over + "~" + Yearbuild;
                    gc.insert_date(orderNumber, parcel_number, 574, Property_Details, 1, DateTime.Now);

                    //Assessment Details
                    string header = "";
                    try
                    {
                        driver.FindElement(By.LinkText("Valuation")).SendKeys(Keys.Enter);
                        Thread.Sleep(2000);
                        gc.CreatePdf(orderNumber, parcel_number, "Assessment Details", driver, "AR", "Saline");
                        string Assessmentdetail = "";
                        //Land Appraised~Land Assessed~Improvements Appraised~Improvements Assessed~Total Value Appraised~Total Value Assessed~Taxable Value Appraised~Taxable Value Assessed~Millage Appraised~Millage Assessed~Estimated Taxes Appraised~Estimated Taxes Assessed~Homestead Credit Appraised~Homestead Credit Assessed~Estimated Taxes w Credit Appraised~Estimated Taxes w Credit Assessed~Assessment Year Appraised~Assessment Year Assessed
                        IWebElement         AssessmentDetails_Table = driver.FindElement(By.XPath("//*[@id='Valuation']/div/div[2]/table/tbody"));
                        IList <IWebElement> Assessmentrow           = AssessmentDetails_Table.FindElements(By.TagName("tr"));
                        IList <IWebElement> Assessmentid;
                        foreach (IWebElement assessment in Assessmentrow)
                        {
                            Assessmentid = assessment.FindElements(By.TagName("td"));
                            if (Assessmentid.Count != 0 && Assessmentid.Count > 2)
                            {
                                Assessmentdetail += Assessmentid[1].Text + "~" + Assessmentid[2].Text.Replace("(", "").Replace(")", "") + "~";
                            }
                            if (Assessmentid.Count != 0 && Assessmentid.Count < 3)
                            {
                                Assessmentdetail += " " + "~" + Assessmentid[1].Text + "~";
                            }
                            if (Assessmentid.Count != 0)
                            {
                                header += Assessmentid[0].Text.Replace(":", "") + " Appraised~" + Assessmentid[0].Text.Replace(":", "") + " Assessed~";
                            }
                        }
                        header = header.Remove(header.Length - 1, 1);
                        db.ExecuteQuery("update data_field_master set Data_Fields_Text='" + header + "' where Id = '" + 576 + "'");
                        Assessmentdetail = Assessmentdetail.Remove(Assessmentdetail.Length - 1, 1);
                        gc.insert_date(orderNumber, parcel_number, 576, Assessmentdetail, 1, DateTime.Now);
                    }
                    catch { }

                    AssessmentTime = DateTime.Now.ToString("HH:mm:ss");
                    try
                    {
                        driver.FindElement(By.LinkText("Receipts")).SendKeys(Keys.Enter);
                        Thread.Sleep(2000);
                        gc.CreatePdf(orderNumber, parcel_number, "Receipts", driver, "AR", "Saline");
                        String              Receiptdetail = "";
                        IWebElement         Receipt_table = driver.FindElement(By.XPath("//*[@id='Receipts']/div/div[2]/table/tbody"));
                        IList <IWebElement> Receipt_row   = Receipt_table.FindElements(By.TagName("tr"));
                        IList <IWebElement> Receiptid;
                        foreach (IWebElement receipt in Receipt_row)
                        {
                            Receiptid = receipt.FindElements(By.TagName("td"));
                            if (Receiptid.Count != 0)
                            {
                                Receiptdetail = Receiptid[0].Text + "~" + Receiptid[1].Text + "~" + Receiptid[2].Text + "~" + Receiptid[3].Text + "~" + Receiptid[4].Text + "~" + Receiptid[5].Text + "~" + Receiptid[6].Text + "~" + Receiptid[7].Text;
                                gc.insert_date(orderNumber, parcel_number, 577, Receiptdetail, 1, DateTime.Now);
                            }
                        }
                    }
                    catch
                    {
                    }
                    //Taxes
                    try
                    {
                        driver.FindElement(By.LinkText("Taxes")).SendKeys(Keys.Enter);
                        Thread.Sleep(2000);
                        gc.CreatePdf(orderNumber, parcel_number, "Taxes Detail", driver, "AR", "Saline");
                        int                 CurrentYear = DateTime.Now.Year;
                        List <string>       Firsttear   = new List <string>();
                        IWebElement         Tax_tabel   = driver.FindElement(By.XPath("//*[@id='Taxes']/div/div[2]/table/tbody"));
                        IList <IWebElement> Taxrow      = Tax_tabel.FindElements(By.TagName("tr"));
                        IList <IWebElement> Taxid;
                        foreach (IWebElement tax in Taxrow)
                        {
                            Taxid = tax.FindElements(By.TagName("td"));
                            if (Taxid.Count != 0)
                            {
                                string Taxresult = Taxid[0].Text + "~" + Taxid[1].Text + "~" + Taxid[2].Text + "~" + Taxid[3].Text + "~" + Taxid[4].Text;
                                gc.insert_date(orderNumber, parcel_number, 578, Taxresult, 1, DateTime.Now);
                            }
                            if (Taxid.Count != 0 && Firsttear.Count < 1)
                            {
                                for (int i = 0; i < 2; i++)
                                {
                                    if (tax.Text.Contains(Convert.ToString(CurrentYear)) && Firsttear.Count < 1)
                                    {
                                        IWebElement Year    = Taxid[0].FindElement(By.TagName("a"));
                                        string      Taxyear = Year.GetAttribute("href");
                                        Firsttear.Add(Taxyear);
                                    }
                                    CurrentYear--;
                                }
                            }
                        }


                        //Property Information
                        foreach (string Firsttear1 in Firsttear)
                        {
                            driver.Navigate().GoToUrl(Firsttear1);
                            gc.CreatePdf(orderNumber, parcel_number, "Taxes Assessment", driver, "AR", "Saline");
                            Thread.Sleep(2000);
                            try
                            {
                                IWebElement PropertyInformation = driver.FindElement(By.XPath("/html/body/div[2]/table[1]/tbody"));
                                Tax_Status     = gc.Between(PropertyInformation.Text, "Tax Status:", "Total Mandatory:");
                                TotalMandatory = gc.Between(PropertyInformation.Text, "Total Mandatory:", "Tax Paid:");
                                TaxPaid        = gc.Between(PropertyInformation.Text, "Tax Paid:", "Balance:");
                                Balance        = driver.FindElement(By.XPath("/html/body/div[2]/table[1]/tbody/tr[16]/td[2]/strong")).Text;
                            }
                            catch { }
                        }
                    }
                    catch
                    { }
                    //Current Tax Information

                    //try
                    //{
                    //    //Currenttaxinfo = driver.FindElement(By.XPath("/html/body/div[2]/table[4]/tbody"));
                    //    IList<IWebElement> tables1 = driver.FindElements(By.XPath("/html/body"));
                    //    int count1 = tables1.Count;
                    //    foreach (IWebElement tab in tables1)
                    //    {
                    //        if (tab.Text.Contains("Tax Information"))
                    //        {
                    //            IList<IWebElement> ITaxRealRowQ1 = tab.FindElements(By.TagName("tr"));

                    //            foreach (IWebElement ItaxReal1 in ITaxRealRowQ1)
                    //            {
                    //                IList<IWebElement> currenttaxid;
                    //                currenttaxid = ItaxReal1.FindElements(By.TagName("td"));
                    //                if (ItaxReal1.Text.Contains("Tax Information"))
                    //                {

                    //                    if (currenttaxid.Count == 8)
                    //                    {
                    //                        if (currenttaxid.Count != 0 && currenttaxid.Count > 4 && !ItaxReal1.Text.Contains("Tax Type"))
                    //                        {
                    //                            string currenttaxresult = currenttaxid[0].Text + "~" + currenttaxid[1].Text + "~" + currenttaxid[2].Text + "~" + currenttaxid[3].Text + "~" +
                    //                                currenttaxid[4].Text + "~" + currenttaxid[5].Text + "~" + currenttaxid[6].Text + "~" + currenttaxid[7].Text;
                    //                            gc.insert_date(orderNumber, parcel_number, 585, currenttaxresult, 1, DateTime.Now);
                    //                        }
                    //                        if (currenttaxid.Count != 0 && currenttaxid.Count < 5)
                    //                        {
                    //                            string currenttaxresult = currenttaxid[0].Text + "~" + "" + "~" + "" + "~" + "" + "~" + "" + "~" + currenttaxid[1].Text + "~" + currenttaxid[2].Text + "~" +
                    //                                currenttaxid[3].Text;
                    //                            gc.insert_date(orderNumber, parcel_number, 585, currenttaxresult, 1, DateTime.Now);
                    //                        }
                    //                    }

                    //                }
                    //            }

                    //        }
                    //    }
                    //}
                    //catch
                    //{
                    //}

                    try
                    {
                        Currenttaxinfo = driver.FindElement(By.XPath("/html/body/div[2]/table[4]/tbody"));
                        IList <IWebElement> Currenttaxinforow = Currenttaxinfo.FindElements(By.TagName("tr"));
                        IList <IWebElement> currenttaxid;
                        foreach (IWebElement current in Currenttaxinforow)
                        {
                            currenttaxid = current.FindElements(By.TagName("td"));
                            if (currenttaxid.Count != 0 && !current.Text.Contains("Tax Type"))
                            {
                                if (currenttaxid.Count > 4)
                                {
                                    string currenttaxresult = currenttaxid[0].Text + "~" + currenttaxid[1].Text + "~" + currenttaxid[2].Text + "~" + currenttaxid[3].Text + "~" +
                                                              currenttaxid[4].Text + "~" + currenttaxid[5].Text + "~" + currenttaxid[6].Text + "~" + currenttaxid[7].Text;
                                    gc.insert_date(orderNumber, parcel_number, 585, currenttaxresult, 1, DateTime.Now);
                                }
                                if (currenttaxid.Count < 5)
                                {
                                    string currenttaxresult = currenttaxid[0].Text + "~" + "" + "~" + "" + "~" + "" + "~" + "" + "~" + currenttaxid[1].Text + "~" + currenttaxid[2].Text + "~" +
                                                              currenttaxid[3].Text;
                                    gc.insert_date(orderNumber, parcel_number, 585, currenttaxresult, 1, DateTime.Now);
                                }
                            }
                        }
                    }
                    catch
                    {
                        try
                        {
                            Currenttaxinfo = driver.FindElement(By.XPath("/html/body/div[2]/table[3]/tbody"));
                            IList <IWebElement> Currenttaxinforow = Currenttaxinfo.FindElements(By.TagName("tr"));
                            IList <IWebElement> currenttaxid;
                            foreach (IWebElement current in Currenttaxinforow)
                            {
                                currenttaxid = current.FindElements(By.TagName("td"));
                                if (currenttaxid.Count != 0 && !current.Text.Contains("Tax Type") && !current.Text.Contains("Receipt #"))
                                {
                                    if (currenttaxid.Count > 4)
                                    {
                                        string currenttaxresult = currenttaxid[0].Text + "~" + currenttaxid[1].Text + "~" + currenttaxid[2].Text + "~" + currenttaxid[3].Text + "~" +
                                                                  currenttaxid[4].Text + "~" + currenttaxid[5].Text + "~" + currenttaxid[6].Text + "~" + currenttaxid[7].Text;
                                        gc.insert_date(orderNumber, parcel_number, 585, currenttaxresult, 1, DateTime.Now);
                                    }
                                    if (currenttaxid.Count < 5)
                                    {
                                        string currenttaxresult = currenttaxid[0].Text + "~" + "" + "~" + "" + "~" + "" + "~" + "" + "~" + currenttaxid[1].Text + "~" + currenttaxid[2].Text + "~" +
                                                                  currenttaxid[3].Text;
                                        gc.insert_date(orderNumber, parcel_number, 585, currenttaxresult, 1, DateTime.Now);
                                    }
                                }
                            }
                        }
                        catch { }


                        string TaxingAuthority = "";
                        try
                        {
                            driver.Navigate().GoToUrl("https://www.salinecollector.ar.gov/contact.html");
                            string Taxauthaddress = driver.FindElement(By.XPath("//*[@id='content']/div/div/div[1]/div")).Text;
                            TaxingAuthority = GlobalClass.Before(Taxauthaddress, "101").Replace("\r\n", "");
                            string Taxnumber = gc.Between(Taxauthaddress, "pm", "E-mail:").Replace("\r\n", "");
                            string TaxPhone  = " Telephone: " + GlobalClass.Before(Taxnumber, "Telephone:") + " FAX: " + gc.Between(Taxauthaddress, "Telephone:", "FAX:");
                            TaxingAuthority = TaxingAuthority + TaxPhone;
                            gc.CreatePdf(orderNumber, parcel_number, "Tax Authority", driver, "AR", "Saline");
                        }
                        catch { }

                        gc.insert_date(orderNumber, parcel_number, 583, Tax_Status + "~" + TotalMandatory + "~" + TaxPaid + "~" + Balance + "~" + TaxingAuthority.Replace("\r\n", " "), 1, DateTime.Now);
                    }

                    TaxTime = DateTime.Now.ToString("HH:mm:ss");

                    LastEndTime = DateTime.Now.ToString("HH:mm:ss");
                    gc.insert_TakenTime(orderNumber, "AR", "Saline", StartTime, AssessmentTime, TaxTime, CitytaxTime, LastEndTime);

                    driver.Quit();
                    gc.mergpdf(orderNumber, "AR", "Saline");
                    return("Data Inserted Successfully....");
                }

                catch (Exception ex)
                {
                    driver.Quit();
                    throw ex;
                }
            }
        }