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 List <DeedHistory> ReturnDeedHistory(string propertyId) { List <DeedHistory> retVal = new List <DeedHistory>(); Dal dal = new Dal(); try { dal.ConnectionString = ReturnConnString(); dal.Connect(); DataSet ds = dal.ReturnDatasetFromStoredProcByPropID("ReturnDeedHistoryByPropID", propertyId); if (ds.Tables[0].Rows.Count > 0) { foreach (DataRow dr in ds.Tables[0].Rows) { DeedHistory dh = new DeedHistory(); dh.PropId = propertyId; dh.Maplot = String.IsNullOrEmpty(dr["MapTaxLot"].ToString()) ? string.Empty : dr["MapTaxLot"].ToString(); dh.Deeddate = String.IsNullOrEmpty(dr["Deeddate"].ToString()) ? string.Empty : dr["deeddate"].ToString(); dh.SellerName = String.IsNullOrEmpty(dr["SellerName"].ToString()) ? string.Empty : dr["SellerName"].ToString(); dh.BuyerName = String.IsNullOrEmpty(dr["BuyerName"].ToString()) ? string.Empty : dr["BuyerName"].ToString(); dh.Deedtype = String.IsNullOrEmpty(dr["Deedtype"].ToString()) ? string.Empty : dr["Deedtype"].ToString(); dh.SalePrice = String.IsNullOrEmpty(dr["SalePrice"].ToString()) ? string.Empty : dr["SalePrice"].ToString(); dh.SaleYn = String.IsNullOrEmpty(dr["SaleYn"].ToString()) ? string.Empty : dr["SaleYn"].ToString(); dh.SalesDate = String.IsNullOrEmpty(dr["SalesDate"].ToString()) ? string.Empty : dr["SalesDate"].ToString(); dh.Bookid = String.IsNullOrEmpty(dr["Bookid"].ToString()) ? string.Empty : dr["Bookid"].ToString(); dh.InstNum = String.IsNullOrEmpty(dr["InstNum"].ToString()) ? string.Empty : dr["InstNum"].ToString(); dh.Instrumentnum = String.IsNullOrEmpty(dr["Instrumentnum"].ToString()) ? string.Empty : dr["Instrumentnum"].ToString(); dh.PropIds = String.IsNullOrEmpty(dr["PropIds"].ToString()) ? string.Empty : dr["PropIds"].ToString(); dh.Comment = String.IsNullOrEmpty(dr["Comment"].ToString()) ? string.Empty : dr["Comment"].ToString(); retVal.Add(dh); } dal.Disconnect(); } } catch (Exception ex) { throw new Exception(ex.Message); } return(retVal); }