コード例 #1
0
        public static void ReportProcessRenew()
        {
            CloseInternetExplorers();

            var totaltodayReportList = MySqlHelper.PopulateTodayRenewAdsForReport();

            ServiceLog.CraigslistErrorLog("*****************************************NUMBEROFADTORUN = " + totaltodayReportList.Count + "*******************************************");

            int showedAds = 0;

            int flagedAds = 0;

            foreach (var vehicle in totaltodayReportList)
            {
                try
                {
                    if (_browser == null)
                    {
                        _browser =
                            new IE(vehicle.CraigslistUrl);
                    }
                    else
                    {
                        _browser.GoToNoWait(vehicle.CraigslistUrl);
                    }
                    _browser.ShowWindow(NativeMethods.WindowShowStyle.Hide);

                    System.Threading.Thread.Sleep(1000);


                    if (_browser.Html.Contains("This posting has been flagged for removal"))
                    {
                        MySqlHelper.NonShowAds(vehicle.AdTrackingId);

                        ServiceLog.CraigslistErrorLog(vehicle.AdTrackingId.ToString(CultureInfo.InvariantCulture) + " == FLAGGED");
                        flagedAds++;
                    }
                    else
                    {
                        MySqlHelper.ShowAds(vehicle.AdTrackingId);
                        ServiceLog.CraigslistErrorLog(vehicle.AdTrackingId.ToString(CultureInfo.InvariantCulture) + " == SHOWED");
                        showedAds++;
                    }



                    System.Threading.Thread.Sleep(200);
                }
                catch (Exception ex)
                {
                    ServiceLog.CraigslistErrorLog(ex.Message);
                }
            }

            if (_browser != null)
            {
                _browser.ClearCache();

                _browser.ClearCookies();

                _browser.Close();

                _browser = null;
            }

            var percentage =
                Math.Ceiling(((double)showedAds /
                              totaltodayReportList.Count()) * 100);

            var builder = new StringBuilder();

            builder.Append("NUMBER OF RENEW ADS TODAY = <b>" + totaltodayReportList.Count + ".....");

            builder.Append("NUMBER OF RENEW ADS SHOWED = " + showedAds + ".....");

            builder.Append("NUMBER OF RENEW ADS FLAGGED = " + flagedAds + "....");

            builder.Append("PERCENTAGE = <b>" + percentage.ToString(CultureInfo.InvariantCulture) + "%" + ".......");

            SmsHelper.SendMessageToAtt("Craigslist Report", builder.ToString());

            ServiceLog.CraigslistErrorLog("*****************************************SHOWED = " + showedAds + "*******************************************");

            ServiceLog.CraigslistErrorLog("*****************************************FLAGGED = " + flagedAds + "*******************************************");

            ServiceLog.CraigslistErrorLog("*****************************************DONE*******************************************");
        }
コード例 #2
0
        public static void RenewAdsProcessByEmailAccount()
        {
            var totalrenewList =
                MySqlHelper.PopulateEmailHavingRenewAds()
                .OrderByDescending(x => x.CraigslistAccountName);

            //.Split(7)
            //.ElementAt(splitPart - 1);

            ServiceLog.CraigslistErrorLog(totalrenewList.Count() + "------------");


            foreach (var eAccount in totalrenewList)
            {
                try
                {
                    System.Threading.Thread.Sleep(2000);


                    if (_browser == null)
                    {
                        _browser = new IE("https://accounts.craigslist.org/");
                    }
                    else
                    {
                        _browser.GoTo("https://accounts.craigslist.org/");
                    }
                    _browser.ShowWindow(NativeMethods.WindowShowStyle.Hide);
                    System.Threading.Thread.Sleep(2000);

                    if (_browser != null && IsAlreadyLogin())
                    {
                        System.Threading.Thread.Sleep(2000);

                        _browser.Span(Find.ById("ef")).Links.First().Click();

                        System.Threading.Thread.Sleep(6000);

                        _browser.ClearCache();

                        _browser.GoTo("https://accounts.craigslist.org/");
                    }


                    //_browser.ShowWindow(NativeMethods.WindowShowStyle.ShowMaximized);

                    System.Threading.Thread.Sleep(2000);

                    _browser.TextField(Find.ByName("inputEmailHandle")).TypeText(eAccount.CraigslistAccountName);

                    _browser.TextField(Find.ByName("inputPassword")).TypeText(eAccount.CraigslistAccountPassword);

                    System.Threading.Thread.Sleep(2000);

                    _browser.Buttons.First().Click();

                    int numberofPages = 1;

                    int numberofFilterpage = 0;

                    foreach (var tmp in _browser.Links)
                    {
                        if (!String.IsNullOrEmpty(tmp.Url) && tmp.Url.Contains("filter_page"))
                        {
                            numberofFilterpage++;
                        }
                    }
                    numberofPages = numberofPages + numberofFilterpage / 2;

                    ServiceLog.CraigslistErrorLog("**** NUMBER OF PAGES = " + numberofPages + "****");


                    if (numberofPages > 0)
                    {
                        for (int i = 1; i <= numberofPages; i++)
                        {
                            if (i == 1)
                            {
                                var allDeleteTab = _browser.TableCells.ToArray();

                                var listofDeleted = new List <long>();

                                foreach (var deleteTmp in allDeleteTab)
                                {
                                    if (!String.IsNullOrEmpty(deleteTmp.GetAttributeValue("style")) &&
                                        deleteTmp.GetAttributeValue("style").Contains("border: 1px solid pink") &&
                                        !String.IsNullOrEmpty(deleteTmp.Text))
                                    {
                                        long clpostingId = 0;
                                        Int64.TryParse(deleteTmp.Text, out clpostingId);

                                        if (clpostingId > 0)
                                        {
                                            listofDeleted.Add(clpostingId);
                                        }
                                    }
                                }

                                MySqlHelper.PinkAdInClAccountManagement(
                                    listofDeleted);

                                System.Threading.Thread.Sleep(2000);

                                if (_browser.Buttons.Any(x => x.Value == "renew"))
                                {
                                    do
                                    {
                                        var tmp = _browser.Buttons.First(x => x.Value == "renew");

                                        System.Threading.Thread.Sleep(3000);

                                        tmp.Click();

                                        var clPostingIdString =
                                            _browser.Url.Substring(
                                                _browser.Url.LastIndexOf("/", System.StringComparison.Ordinal) +
                                                1);

                                        long clPostingId = 0;

                                        Int64.TryParse(clPostingIdString, out clPostingId);

                                        if (clPostingId > 0)
                                        {
                                            MySqlHelper.ShowAdsButEligibleForRenewFromClAccountManagement(
                                                clPostingId);
                                        }
                                        ServiceLog.CraigslistErrorLog(clPostingIdString + "Renew------------");
                                        System.Threading.Thread.Sleep(8000);

                                        _browser.GoTo("https://accounts.craigslist.org/");

                                        System.Threading.Thread.Sleep(3000);
                                    } while (_browser.Buttons.Any(x => x.Value == "renew"));
                                }
                            }
                            else
                            {
                                _browser.GoTo("https://accounts.craigslist.org/?filter_page=" + i +
                                              "&filter_cat=0&filter_date=0&filter_active=0&show_tab=postings");

                                var allDeleteTab = _browser.TableCells.ToArray();

                                var listofDeleted = new List <long>();

                                foreach (var deleteTmp in allDeleteTab)
                                {
                                    if (!String.IsNullOrEmpty(deleteTmp.GetAttributeValue("style")) &&
                                        deleteTmp.GetAttributeValue("style").Contains("border: 1px solid pink") &&
                                        !String.IsNullOrEmpty(deleteTmp.Text))
                                    {
                                        long clpostingId = 0;
                                        Int64.TryParse(deleteTmp.Text, out clpostingId);

                                        if (clpostingId > 0)
                                        {
                                            listofDeleted.Add(clpostingId);
                                        }
                                    }
                                }
                                MySqlHelper.PinkAdInClAccountManagement(
                                    listofDeleted);


                                System.Threading.Thread.Sleep(2000);

                                if (_browser.Buttons.Any(x => x.Value == "renew"))
                                {
                                    do
                                    {
                                        var tmp = _browser.Buttons.First(x => x.Value == "renew");

                                        System.Threading.Thread.Sleep(3000);

                                        tmp.Click();

                                        var clPostingIdString =
                                            _browser.Url.Substring(
                                                _browser.Url.LastIndexOf("/", System.StringComparison.Ordinal) +
                                                1);

                                        long clPostingId = 0;

                                        Int64.TryParse(clPostingIdString, out clPostingId);

                                        if (clPostingId > 0)
                                        {
                                            MySqlHelper.ShowAdsButEligibleForRenewFromClAccountManagement(
                                                clPostingId);
                                        }
                                        ServiceLog.CraigslistErrorLog(clPostingIdString + "Renew------------");
                                        System.Threading.Thread.Sleep(8000);

                                        _browser.GoTo("https://accounts.craigslist.org/?filter_page=" + i +
                                                      "&filter_cat=0&filter_date=0&filter_active=0&show_tab=postings");


                                        System.Threading.Thread.Sleep(3000);
                                    } while (_browser.Buttons.Any(x => x.Value == "renew"));
                                }
                            }
                        }
                    }
                }

                catch
                (Exception ex)
                {
                    ServiceLog.CraigslistErrorLog(ex.Message);

                    ServiceLog.CraigslistErrorLog(ex.StackTrace);

                    if (_browser != null)
                    {
                        _browser.ClearCache();

                        _browser.ClearCookies();

                        _browser = new IE("https://accounts.craigslist.org/");
                    }
                    else
                    {
                        _browser.GoTo("https://accounts.craigslist.org/");
                    }


                    System.Threading.Thread.Sleep(2000);
                }
            }

            //if (_browser != null)
            //{
            //    _browser.ClearCache();

            //    _browser.ClearCookies();

            //    _browser.Close();

            //}

            CloseInternetExplorers();
        }