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_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; } } }