Пример #1
0
        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);
        }
Пример #2
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);
        }
Пример #3
0
        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);
        }
Пример #4
0
        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);
        }
Пример #5
0
        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);
        }
Пример #6
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);
        }
Пример #7
0
        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);
        }
Пример #8
0
        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);
        }
Пример #9
0
        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);
                }
            }
        }