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; }
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); }
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); }
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; } }