Example #1
0
    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);
    }
Example #2
0
    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);
        }
    }
Example #3
0
    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);
    }
Example #4
0
    public static bool HasNormalBanner(int adPacksAdvertId)
    {
        AdPacksAdvert ad = new AdPacksAdvert(adPacksAdvertId);

        if (ad.NormalImagePath == null)
        {
            return(false);
        }
        return(true);
    }
Example #5
0
    public static bool HasConstantBanner(int adPacksAdvertId)
    {
        AdPacksAdvert ad = new AdPacksAdvert(adPacksAdvertId);

        if (ad.ConstantImagePath == null)
        {
            return(false);
        }
        return(true);
    }
Example #6
0
    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));
    }
Example #7
0
    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;
    }
Example #9
0
    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);
    }