public static HyperLink GetBanner(BannerAdvert.Type type, int indexOnPage) { AdPackBannerDisplayerHelper Helper = new AdPackBannerDisplayerHelper(type); List <AdPacksAdvert> allBanners = Helper.Banners; //Randomize the banner int bannerIndex = random.Next(0, allBanners.Count); HyperLink Banner = Helper.GetBannerHyperLink(); //Do we have enough banners to display? if (allBanners.Count > 0 && allBanners.Count > indexOnPage) { AdPacksAdvert chosenBanner = allBanners[bannerIndex]; //Adding the impression AddBannerImpression(chosenBanner.Id, type); //Finishing Banner.NavigateUrl = AppSettings.Site.Url + "link.aspx?rid=" + (new Encryption()).EncryptBannerId(chosenBanner.Id); Banner.Controls.Clear(); Banner.Controls.Add(Helper.GetBannerImage(chosenBanner)); } return(Banner); }
public static void AddAdPackBannerImpression(int adPackBannerId, BannerAdvert.Type type) { string name = AdPackBannerName + adPackBannerId; var pair = new KeyValuePair <DateTime, int>(DateTime.Now.AddSeconds(AdPackBannerRefreshEverySeconds), 1); if (HttpContext.Current.Cache[name] != null) { var cachedPair = (KeyValuePair <DateTime, int>)HttpContext.Current.Cache[name]; pair = new KeyValuePair <DateTime, int>(cachedPair.Key, cachedPair.Value + 1); } CacheItemRemovedCallback callback; if (type == BannerAdvert.Type.Constant) { callback = new CacheItemRemovedCallback(ConstantAdPackBannerImpressionCacheRemoved); } else { callback = new CacheItemRemovedCallback(NormalAdPackBannerImpressionCacheRemoved); } HttpContext.Current.Cache.Insert(name, pair, null, pair.Key, Cache.NoSlidingExpiration, CacheItemPriority.Normal, callback); }
private static void AddBannerImpression(int adPacksAdvertId, BannerAdvert.Type type) { BannerImpressionsCache.AddAdPackBannerImpression(adPacksAdvertId, type); }
public AdPackBannerDisplayerHelper(BannerAdvert.Type type) { BannerType = type; }