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); }
protected void Page_Load(object sender, EventArgs e) { if (Request.QueryString["id"] != null) { var te = new Encryption(); int BannerId = te.DecryptBannerId(Request.Params["id"]); BannerAdvert banner = new BannerAdvert(BannerId); var list = getWatchedBannersCollection(); if (!list.Contains(BannerId) && !AppSettings.BannerAdverts.ImpressionsEnabled) { banner.Click(); list.Add(banner.Id); saveWatchedBannersCollection(list); } Response.Redirect(banner.TargetUrl); } else if (Request.QueryString["redirect"] != null) { string redirect = Request.QueryString["redirect"]; Response.Redirect("~/" + redirect); } else if (Request.QueryString["rid"] != null) { //RSA ads var te = new Encryption(); int BannerId = te.DecryptBannerId(Request.Params["rid"]); AdPacksAdvert banner = new AdPacksAdvert(BannerId); Response.Redirect(banner.TargetUrl); } }
public static void BuySurfAds(int adPacksAdvertId, Member user, SurfAdsPack surfAdsPack, PurchaseBalances targetBalance) { var availablePacks = SurfAdsPack.GetAllActivePacks(); if (surfAdsPack.Status != SurfAdsPackStatus.Active) { throw new MsgException("Selected Surf Ads Pack is unavailable"); } //BUY ADPACKS var totalPrice = surfAdsPack.Price; PurchaseOption.ChargeBalance(user, totalPrice, PurchaseOption.Features.SurfAd.ToString(), targetBalance, string.Format("{0} purchase", U5004.SURFADS)); AdPacksAdvert ad = new AdPacksAdvert(adPacksAdvertId); AdPack pack = new AdPack(); pack.MoneyReturned = new Money(0); pack.AdPacksAdvertId = adPacksAdvertId; pack.TotalConstantBannerImpressions = pack.ConstantBannerImpressionsBought = 0; pack.NormalBannerImpressionsBought = pack.TotalNormalBannerImpressions = 0; pack.ClicksBought = surfAdsPack.Clicks; pack.PurchaseDate = DateTime.Now; pack.MoneyToReturn = pack.MoneyReturned = new Money(0); pack.UserCustomGroupId = -1; pack.UserId = user.Id; pack.DistributionPriority = new Decimal(0); pack.AdPackTypeId = -1; pack.DisplayTime = surfAdsPack.DisplayTime; pack.Save(); //Pools PoolDistributionManager.AddProfit(ProfitSource.SurfAds, totalPrice); }
public static bool HasNormalBanner(int adPacksAdvertId) { AdPacksAdvert ad = new AdPacksAdvert(adPacksAdvertId); if (ad.NormalImagePath == null) { return(false); } return(true); }
public static bool HasConstantBanner(int adPacksAdvertId) { AdPacksAdvert ad = new AdPacksAdvert(adPacksAdvertId); if (ad.ConstantImagePath == null) { return(false); } return(true); }
public static int GetAdDisplayTime(AdPacksAdvert ad) { var cache = new AdminIdCache(); if (ad.CreatorUserId == (int)cache.Get()) { return(AppSettings.RevShare.AdPack.AdminsAdvertDisplayTime); } string query = string.Format(@"SELECT TOP 1 DisplayTime FROM AdPacks WHERE AdPacksAdvertId = {0} AND TotalClicks < ClicksBought ORDER BY PurchaseDate", ad.Id); return((int)TableHelper.SelectScalar(query)); }
protected UserControl GetAdHTML(AdPacksAdvert Ad, Member User) { bool IsActive = true; if (Member.IsLogged) IsActive = !User.RSAPTCAdsViewed.Contains(Ad.Id); UserControl objControl = (UserControl)Page.LoadControl("~/Controls/Advertisements/AdPacksAdvert.ascx"); var parsedControl = objControl as IAdPackObjectControl; parsedControl.Object = Ad; PropertyInfo myProp1 = parsedControl.GetType().GetProperty("IsActive"); myProp1.SetValue(parsedControl, IsActive, null); //parsedControl. parsedControl.DataBind(); return objControl; }
public Image GetBannerImage(AdPacksAdvert advert) { Image BannerImage = new Image(); if (BannerType == BannerAdvert.Type.Constant) { BannerImage.ImageUrl = advert.ConstantImagePath; BannerImage.Width = AppSettings.RevShare.AdPack.PackConstantBannerWidth; BannerImage.Height = AppSettings.RevShare.AdPack.PackConstantBannerHeight; } else { BannerImage.ImageUrl = advert.NormalImagePath; BannerImage.Width = AppSettings.RevShare.AdPack.PackNormalBannerWidth; BannerImage.Height = AppSettings.RevShare.AdPack.PackNormalBannerHeight; } return BannerImage; }
public static List <AdPacksAdvert> GetAdPacksAdvertsForUsers(int dailyRequiredClicks) { var cache = new AdPackAdvertsForUsersCache(); var adminIdCache = new AdminIdCache(); DataTable usersAds = (DataTable)cache.Get(); var usersAdsList = TableHelper.GetListFromDataTable <AdPacksAdvert>(usersAds, dailyRequiredClicks, true); var distinctAdPacks = new List <AdPacksAdvert>(); var lowPriorityAdPacks = new List <AdPacksAdvert>(); var highPriorityAdPacks = new List <AdPacksAdvert>(); var normalPriorityAdPacks = new List <AdPacksAdvert>(); AdPacksAdvert startPage = null; for (int i = 0; i < usersAdsList.Count; i++) { var item = usersAdsList[i]; if (item.StartPageDate.HasValue && item.StartPageDate.Value.Date == DateTime.Now.Date) { startPage = item; } else if (item.Priority == 0) { normalPriorityAdPacks.Add(item); } else if (item.Priority > 0) { highPriorityAdPacks.Add(item); } else if (item.Priority < 0) { lowPriorityAdPacks.Add(item); } } highPriorityAdPacks.Sort((x, y) => x.Priority.CompareTo(y.Priority)); lowPriorityAdPacks.Sort((x, y) => y.Priority.CompareTo(x.Priority)); normalPriorityAdPacks.Shuffle(); var adsCountToAdd = dailyRequiredClicks - highPriorityAdPacks.Count - lowPriorityAdPacks.Count; if (startPage != null) { adsCountToAdd--; } if (adsCountToAdd > 0 && normalPriorityAdPacks.Count > 0) { for (int i = 0; i < normalPriorityAdPacks.Count && i < adsCountToAdd; i++) { distinctAdPacks.Add(normalPriorityAdPacks[i]); } } if (distinctAdPacks.Count < adsCountToAdd) { var adminsAdsCount = adsCountToAdd - distinctAdPacks.Count; using (var bridge = ParserPool.Acquire(Database.Client)) { var adminsAds = bridge.Instance.ExecuteRawCommandToDataTable(string.Format(@"SELECT DISTINCT TOP {0} apa.Id, apa.Status, apa.TargetUrl, apa.ConstantImagePath, apa.NormalImagePath, apa.CreatorUserId, apa.Title, apa.Description, apa.Priority FROM AdPacksAdverts apa WHERE apa.CreatorUserId = {1} AND apa.Priority = 0 AND apa.Status = {2}", adminsAdsCount, (int)adminIdCache.Get(), (int)AdvertStatus.Active)); var adminsAdsList = TableHelper.GetListFromDataTable <AdPacksAdvert>(adminsAds, adminsAdsCount, false); distinctAdPacks.AddRange(adminsAdsList); } } if (startPage != null) { distinctAdPacks.Insert(0, startPage); } for (int i = 0; i < highPriorityAdPacks.Count; i++) { distinctAdPacks.Insert(startPage != null ? 1 : 0, highPriorityAdPacks[i]); } distinctAdPacks.AddRange(lowPriorityAdPacks); return(distinctAdPacks); }