internal static bool UpdateKeyWordDetailAfter(string connString, KeyWordDetailInfo keyWordDetail) { DataTable dataTable = SQLExtension.GetDataTableFromStoredProcedure(connString: connString, storedProcedureName: "[qwi].[GG.UpdateKeyWordDetailAfter]", parameters: keyWordDetail.SQLParametersAfter); SQLResultStatusInfo sqlResultStatus = dataTable.SerializeFirst <SQLResultStatusInfo>(); return(sqlResultStatus.Id > 0); }
private static Boolean pollingEmails(KeyWordDetailInfo keyWordDetail, ChromeDriver driver, String url) { Boolean success = false; //url = url.GetValidUrl(true).GetBaseUrl(); Utilities.Utilities.Log(message: "[1]", isWriteLine: false, addTime: false); if (url.IsWebSiteAvailable()) { if (pollingEmail(keyWordDetail, driver, url)) { if (!String.IsNullOrEmpty(keyWordDetail.Email)) { success = true; } else if (pollingEmail(keyWordDetail, driver, url.GetValidUrl(false).GetBaseUrl())) { success = !String.IsNullOrEmpty(keyWordDetail.Email); } } } else { keyWordDetail.Comments = StatusExtension.ErrorMessage; } return(success); }
private static Boolean preventPopup(ref ChromeDriver driver, KeyWordDetailInfo keyWordDetail) { Boolean success = false; if (success = driver.CheckAlert()) { restartDriver(ref driver); keyWordDetail.Comments = "new Popup"; Utilities.Utilities.Log(message: "[X2]", isError: true, isWriteLine: false, addTime: false); } return(success); }
private static Boolean pollingEmail(KeyWordDetailInfo keyWordDetail, ChromeDriver driver, String url) { Boolean success = false; keyWordDetail.Comments = String.Empty; try { try { Utilities.Utilities.Log(message: "[2]", isWriteLine: false, addTime: false); driver.Navigate().GoToUrl(url); Utilities.Utilities.Log(message: "[3]", isWriteLine: false, addTime: false); } catch (WebDriverTimeoutException) { //driver.FindElement(By.TagName("body")).SendKeys("Keys.ESCAPE"); driver.ExecuteScript("window.stop();"); //((IJavaScriptExecutor)driver).ExecuteScript("window.stop();"); } KeyWordDetailInfo.TimeoutCount = 0; if (!preventPopup(ref driver, keyWordDetail)) { driver.ClosePopup(); keyWordDetail.Update(driver); Utilities.Utilities.Log(message: "[4]", isWriteLine: false, addTime: false); if (click(driver)) { Utilities.Utilities.Log(message: "[5]", isWriteLine: false, addTime: false); if (!preventPopup(ref driver, keyWordDetail)) { keyWordDetail.Update(driver); } Utilities.Utilities.Log(message: "[6]", isWriteLine: false, addTime: false); } success = !String.IsNullOrEmpty(keyWordDetail.Email); } } catch (Exception ex) { ++KeyWordDetailInfo.TimeoutCount; //driver.Navigate().GoToUrl("about:blank"); //restartDriver(ref driver); keyWordDetail.Comments = $"[Restart]{ex.Message}"; Utilities.Utilities.Log(message: "[X1]", isError: true, isWriteLine: false, addTime: false); if (KeyWordDetailInfo.TimeoutCount >= 2) { driver.Quit(); Console.Error.WriteLine("STOP"); Environment.Exit(-100); } } return(success); }
internal static bool UpdateVedCodeCrossLink(string connString, KeyWordInfo keyWord, Dictionary <String, String> veds) { List <KeyValuePair <String, Object> > parameters = new List <KeyValuePair <String, Object> >() { new KeyValuePair <String, Object>("@KeyWord", keyWord.KeyWordToSearch), new KeyValuePair <String, Object>("@DetailId", -1), new KeyValuePair <String, Object>("@Veds", KeyWordDetailInfo.GetVedsDataTable(veds)) }; DataTable dataTable = SQLExtension.GetDataTableFromStoredProcedure(connString: connString, storedProcedureName: "[qwi].[GG.UpdateVedCodeCrossLink]", parameters: parameters); SQLResultStatusInfo sqlResultStatus = dataTable.SerializeFirst <SQLResultStatusInfo>(); return(sqlResultStatus.Id > 0); }
private static Boolean pollingEmails(KeyWordDetailInfo keyWordDetail, ChromeDriver driver, String url) { Boolean success = false; if (pollingEmail(keyWordDetail, driver, url.GetValidUrl(true).GetBaseUrl())) { if (!String.IsNullOrEmpty(keyWordDetail.Email)) { success = true; } else if (pollingEmail(keyWordDetail, driver, url.GetValidUrl(false).GetBaseUrl())) { success = !String.IsNullOrEmpty(keyWordDetail.Email); } } return(success); }
private static bool pollingKeyWordDetails(string connString, ChromeDriver driver, KeyWordInfo keyWord, ReadOnlyCollection <IWebElement> elements, Boolean isAds, Int32 page) { Boolean success = false; if (elements != null) { foreach (IWebElement element in elements) { KeyWordDetailInfo keyWordDetail = new KeyWordDetailInfo(driver, element, keyWord, isAds, page); if (success = !keyWordDetail.HasError) { success = DataOperation.UpdateKeyWordDetail(connString, keyWordDetail); } Utilities.Utilities.Log(message: success ? $"." : "X", isWriteLine: false, addTime: false); } } return(success); }
private static Boolean pollingEmail(KeyWordDetailInfo keyWordDetail, ChromeDriver driver, String url) { Boolean success = false; keyWordDetail.Comments = String.Empty; try { driver.Navigate().GoToUrl(url); keyWordDetail.Update(driver); if (String.IsNullOrEmpty(keyWordDetail.Email)) { success = driver.Click("//*[text()='Contact Us']"); keyWordDetail.Update(driver); } } catch (Exception ex) { keyWordDetail.Comments = ex.Message; } return(success); }
internal static void PollingSearchByAPI(string connString, string code) { Boolean success = false; Utilities.Utilities.Log(message: "Polling Google Search from API ... ", isWriteLine: false, addTime: true); List <KeyWordInfo> keyWrods = DataOperation.GetKeyWords(connString, code); Utilities.Utilities.Log(message: $"[{keyWrods.Count}]", isWriteLine: true); String category = String.Empty; CustomsearchService customSearchService = new CustomsearchService(new BaseClientService.Initializer { ApiKey = API_KEY }); foreach (KeyWordInfo keyWord in keyWrods) { if (category != keyWord.Category) { Utilities.Utilities.Log(message: $"[{keyWord.Category}] ... ", isWriteLine: true, addTime: true); category = keyWord.Category; } Utilities.Utilities.Log(message: $"Polling [{keyWord.KeyWordToSearch}] -> ", isWriteLine: false, addTime: true); CseResource.ListRequest listRequest = customSearchService.Cse.List(keyWord.KeyWordToSearch); listRequest.Cx = SEARCH_ID; listRequest.Filter = CseResource.ListRequest.FilterEnum.Value1; listRequest.Start = 0; listRequest.Num = 10; listRequest.LowRange = "100"; listRequest.HighRange = "200"; IList <Result> paging = new List <Result>(); Int32 page = 0; Int32 count = 0; Int32 countError = 0; success = true; do { listRequest.Start = page * 10 + 1; Utilities.Utilities.Log(message: $"[{++page}]", isWriteLine: false, addTime: false); try { paging = listRequest.Execute().Items; if (paging != null) { foreach (Result item in paging) { if (item.FileFormat == null) { ++count; KeyWordDetailInfo keyWordDetail = new KeyWordDetailInfo(item, keyWord, false, page); if (success = !keyWordDetail.HasError) { success = DataOperation.UpdateSearchResult(connString, keyWordDetail); } if (!success) { ++countError; } } } } } catch (Google.GoogleApiException ex) { Utilities.Utilities.Log(message: $"[Error]\n{ex.Message}", isWriteLine: true, addTime: true, feedLine: true); success = false; break; } } while (page < 10 && paging != null); if (success) { keyWord.Pages = page; success = DataOperation.UpdateSearchHistory(connString, keyWord); Utilities.Utilities.Log(message: $"[Done] [{count}/{countError}]", isWriteLine: true, addTime: false); } } }