示例#1
0
        public void UpdateActiveBannders()
        {
//			var testSite = 782792;
            var bannersForUpdate = new List <BannerInfo>();
            var bannerForStop    = new List <BannerInfo>();
            var compaignIDs      = DirectApiService.GetActiveCompaignIDs();

            foreach (var compaigns in compaignIDs.GetRows(10))
            {
                if (!compaigns.Any())
                {
                    break;
                }
                var banners = DirectApiService.GetActiveBanners(new GetBannersInfo {
                    CampaignIDS = compaigns.ToArray()
                });
//				result += banners.OrderBy(x => x.CampaignID).Where(x => x.Sitelinks.Any(y => y.Title.Length > 30))
//					.Select(x => x.CampaignID + " " + x.BannerID + " " +
//						x.Sitelinks.Where(z => z.Title.Length > 30)
//						.Select(z => z.Title).JoinWith("; ")).JoinWith(Environment.NewLine);


                var badBanners = _.List <long>(272867448, 11780704, 242879828, 242504496, 242504529, 242504531, 242504540);
                foreach (var banner in banners)
                {
                    if (badBanners.Contains(banner.BannerID) ||
                        banner.Phrases == null || banner.Phrases.Any(x => x.Price.GetValueOrDefault() < 0.01))
                    {
                        continue;
                    }
                    var old = banner.Href;
                    if (YandexDirectTextUtils.UpdateHref(banner))
                    {
                        WL(old);
                        bannersForUpdate.Add(banner);
                        WL(banner.Href);
                    }
                    if (DisableBanner(banner))
                    {
                        bannerForStop.Add(banner);
                        WL(banner.Href);
                    }
                }
            }
            foreach (var bannerInfo in bannersForUpdate)
            {
                if (bannerInfo.ContactInfo != null && bannerInfo.ContactInfo.Street == null &&
                    bannerInfo.ContactInfo.PointOnMap != null)
                {
                    bannerInfo.ContactInfo.PointOnMap = null;
                }
            }

            UpdateBanners(bannersForUpdate);
            StopBanners(bannerForStop);


            log = string.Empty;
        }
示例#2
0
        private void ClearBannerText(Sitelink sitelink)
        {
            if (sitelink == null)
            {
                return;
            }
//			banner.Title = YandexDirectTextUtils.RemoveDateAndDiscount(banner.Title);
//			banner.Text = YandexDirectTextUtils.RemoveDateAndDiscount(banner.Text);
            sitelink.Title =
                YandexDirectTextUtils.RemoveDateAndDiscount(sitelink.Title);
        }
示例#3
0
        public bool DisableBanner(BannerInfo banner)
        {
            var urlName = YandexDirectTextUtils.GetUrlName(banner.Href);

            if (CourseTC.TorUrls.Contains(urlName))
            {
                return(false);
            }
            if (!urlName.IsEmpty())
            {
                return(!CoursesWithGroup.Contains(urlName));
            }
            return(false);
        }
示例#4
0
        private void UpdateText(Sitelink link, DateTime?date,
                                short?discount, int textLimit)
        {
            ClearBannerText(link);
            string autoText;

            if (discount.HasValue)
            {
                autoText = YandexDirectTextUtils.GetDiscountText(discount.Value,
                                                                 textLimit - link.Title.Length);
                link.Title += autoText;
                return;
            }
            if (date.HasValue)
            {
                autoText = YandexDirectTextUtils.GetDateText(date.Value,
                                                             textLimit - link.Title.Length);
                link.Title += autoText;
            }
        }