public static BannerBiddingDimensionsDictionary Initialize()
    {
        var result     = new Dictionary <int, Dictionary <int, List <BannerAdvert> > >();
        var dimensions = TableHelper.SelectAllRows <BannerAdvertDimensions>();

        foreach (var dimension in dimensions)
        {
            var positionDictionary = new Dictionary <int, List <BannerAdvert> >();

            List <BannerAdvert> adverts = new List <BannerAdvert>();
            BannerAdvert        current = BannerAuctionManager.GetCurrentBanner(dimension, 1);

            if (current != null)
            {
                adverts.Add(current);
            }

            if (adverts.Count == 0)
            {
                //Show Administrator banners
                var dict = new Dictionary <string, object>();
                dict.Add("Status", (int)AdvertStatus.Active);
                dict.Add("BannerAdvertDimensionId", dimension.Id);
                dict.Add("CreatedBy", (int)Advertiser.Creator.Admin);
                adverts = TableHelper.SelectRows <BannerAdvert>(dict);
            }

            positionDictionary[1] = adverts;

            result.Add(dimension.Id, positionDictionary);
        }

        return(new BannerBiddingDimensionsDictionary(result));
    }
示例#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);
        }
    }
示例#3
0
        private void buyAdvert(string advertTypeName, int advertId, Money money, string from, string transId, string cryptoCurrencyInfo)
        {
            var advert = (Advert)Activator.CreateInstance(Type.GetType(advertTypeName), new object[] { advertId });

            //Prevent fraud transactions (GET price modifications)c
            //NOTE: {X}.XXX cost = {X}.XX received (1.051 = 1.05, 1.059 = 1.05)
            //That is why we add 0.009

            bool successful = false;

            if ((money + new Money(0.009)) >= advert.Price)
            {
                successful    = true;
                advert.Status = AdvertStatus.WaitingForAcceptance;
                advert.SaveStatus();
            }

            //Earnings stats
            if (advert is BannerAdvert)
            {
                BannerAdvert thisAdvert = (BannerAdvert)advert;
                EarningsStatsManager.Add(EarningsStatsType.Banner, money);
                PoolDistributionManager.AddProfit(ProfitSource.Banners, money);
            }

            //AddLog
            PaymentProcessor PP = PaymentAccountDetails.GetFromStringType(from);

            CompletedPaymentLog.Create(PP, "Purchase Advertisement pack", transId, advert.Advertiser.CreatedBy == Advertiser.Creator.Stranger, advert.Advertiser.MemberUsername, money, Money.Zero, successful, cryptoCurrencyInfo);
        }
示例#4
0
    protected void DirectRefsGridView_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        //We want to obey OnSort and OnChart events
        string[] commands = new string[3] {
            "start", "stop", "remove"
        };

        if (commands.Contains(e.CommandName))
        {
            int         index = e.GetSelectedRowIndex() % DirectRefsGridView.PageSize;
            GridViewRow row   = DirectRefsGridView.Rows[index];
            string      AdId  = (row.Cells[1].Text.Trim());
            var         Ad    = new BannerAdvert(Convert.ToInt32(AdId));

            switch (e.CommandName)
            {
            case "start":
                Ad.Status = AdvertStatus.Active;
                break;

            case "stop":
                Ad.Status = AdvertStatus.Paused;
                break;

            case "remove":
                Ad.Status = AdvertStatus.Deleted;
                break;
            }
            Ad.SaveStatus();
            ShowSuccPanel();
            DirectRefsGridView.DataBind();
            Response.Redirect("~/user/advert/banners.aspx");
        }
    }
示例#5
0
 protected void BannerTypeRadioButtonList_SelectedIndexChanged(object sender, EventArgs e)
 {
     createBannerAdvertisement_BannerImage.ImageUrl = null;
     createBannerAdvertisement_BannerUpload.Dispose();
     BannerFileUrlTextBox.Text = "";
     NewBannerAdvert           = null;
     DimensionsPlaceHolder.Controls.Clear();
 }
示例#6
0
 protected void BannerTypeRadioButtonList_SelectedIndexChanged(object sender, EventArgs e)
 {
     BindDataToDDL(new BannerAdvertDimensions(Convert.ToInt32(BannerTypeRadioButtonList.SelectedValue)));
     createBannerAdvertisement_BannerImage.ImageUrl = null;
     createBannerAdvertisement_BannerUpload.Dispose();
     BannerFileUrlTextBox.Text = "";
     NewBannerAdvert           = null;
 }
示例#7
0
    public Image GetBannerImage(BannerAdvert advert)
    {
        Image banner = new Image();

        banner.ImageUrl = advert.ImagePath;
        banner.CssClass = "img-responsive";

        return(banner);
    }
示例#8
0
    protected void BidButton_Click(object sender, EventArgs e)
    {
        BannerAuction target = this.target;

        ErrPanel.Visible = false;
        SucPanel.Visible = false;

        try
        {
            BannerAdvert advert   = new BannerAdvert(Convert.ToInt32(ddlOptions.SelectedValue));
            Member       User     = Member.Current;
            Money        bidValue = target.NextMinBidValue;

            //Status check
            if (target.Status != BannerAuctionStatus.Opened)
            {
                throw new MsgException(U4000.AUCTIONCLOSED);
            }

            //Balance check
            if (bidValue > User.PurchaseBalance)
            {
                throw new MsgException(L1.NOTENOUGHFUNDS);
            }

            //Take money
            User.SubtractFromPurchaseBalance(bidValue, "Banner bid");
            User.SaveBalances();

            //Add bid
            BannerBid bid = new BannerBid();
            bid.BidValue        = bidValue;
            bid.BannerAdvertId  = advert.Id;
            bid.BannerAuctionId = target.Id;
            bid.Username        = User.Name;
            BannerAuctionManager.AddBid(bid, target, User);

            //Refresh bids field
            GenerateBidFields(target);
            PlaceBidPanel.Visible = false;

            SucPanel.Visible = true;
            SucMess.Text     = U4000.BIDPLACED;

            AuctionGrid.DataBind();
        }
        catch (MsgException ex)
        {
            ErrPanel.Visible = true;
            ErrMess.Text     = ex.Message;
        }
        catch (Exception ex)
        {
            ErrorLogger.Log(ex);
        }
    }
示例#9
0
    protected void DirectRefsGridView_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            BannerAdvert BannerAd = new BannerAdvert(Convert.ToInt32(e.Row.Cells[1].Text));

            //Image [4]
            var Imag = new Image();
            Imag.ImageUrl       = e.Row.Cells[4].Text;
            Imag.Height         = Unit.Percentage(33);
            e.Row.Cells[4].Text = "";
            e.Row.Cells[4].Controls.Add(Imag);

            //Shorten url [3]
            if (e.Row.Cells[3].Text.Length > 39)
            {
                e.Row.Cells[3].Text = e.Row.Cells[3].Text.Substring(0, 36) + "...";
            }

            //End mode [14]
            End.Mode Mode = (End.Mode)Convert.ToInt32(e.Row.Cells[14].Text);

            //Status [15]
            AdvertStatus Status = (AdvertStatus)Convert.ToInt32(e.Row.Cells[15].Text);
            e.Row.Cells[15].Text = HtmlCreator.GetColoredStatus(Status);

            //Remove [18]
            if (!Status.CanBeRemoved())
            {
                e.Row.Cells[18].Text = "&nbsp;";
            }

            //Paused = APPROVED
            if (Status == AdvertStatus.Paused)
            {
                e.Row.Cells[15].Text = "<span style=\"color:#\">" + U4000.APPROVED + "</span>";
            }
        }
        else if (e.Row.RowType == DataControlRowType.Header)
        {
            e.Row.Cells[12].Text = AppSettings.BannerAdverts.ImpressionsEnabled ? L1.IMPRESSIONS : L1.CLICKS;
        }
    }
示例#10
0
        public string ToString(int place, bool isPaid = false)
        {
            //Generate HTML
            StringBuilder sb = new StringBuilder();

            //<div class="bannerBid">
            //          <h3>1: $4.54</h3>
            //          <div class="bannerBidPaid">PAID: 101%</div><br />
            //          <img src="dupa" /> <br />
            //          Username: asdasdfsdf<br />
            //          http://onet.pl
            //      </div>
            BannerAdvert TargetBanner = this.Banner;
            string       url          = (HttpContext.Current.Handler as Page).ResolveUrl(TargetBanner.ImagePath);

            sb.Append("<div class=\"bannerBid\"><h3>")
            .Append(place)
            .Append(": ")
            .Append(BidValue.ToString())
            .Append("</h3>");

            if (isPaid)
            {
                sb.Append("<div class=\"bannerBidPaid\">");
                sb.Append(Resources.U4000.PAID);
                sb.Append(": ");
                sb.Append(AppSettings.BannerAdverts.LostBidsReturnPercent);
                sb.Append("%</div><br />");
            }

            sb.Append("<img src=\"");
            sb.Append(url);
            sb.Append("\" class=\"bannerBidImage\" /> <br/>");
            sb.Append(Resources.L1.USERNAME);
            sb.Append(": ");
            sb.Append(Username)
            .Append("<br/><i>")
            .Append(TargetBanner.TargetUrl)
            .Append("</i></div>");

            return(sb.ToString());
        }
示例#11
0
    protected void DirectRefsGridView_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        //We want to obey OnSort and OnChart events
        string[] commands = new string[1] {
            "remove"
        };

        if (commands.Contains(e.CommandName))
        {
            int         index = e.GetSelectedRowIndex() % DirectRefsGridView.PageSize;
            GridViewRow row   = DirectRefsGridView.Rows[index];
            string      AdId  = (row.Cells[1].Text.Trim());
            var         Ad    = new BannerAdvert(Convert.ToInt32(AdId));

            if (e.CommandName == "remove")
            {
                Ad.Status = AdvertStatus.Deleted;
                Ad.SaveStatus();
                RedirectToStart();
            }
        }
    }
示例#12
0
    protected void DirectRefsGridView_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            BannerAdvert BannerAd = new BannerAdvert(Convert.ToInt32(e.Row.Cells[1].Text));

            //Image [4]
            var Imag = new Image();
            Imag.ImageUrl = e.Row.Cells[4].Text;
            Imag.Height   = Unit.Percentage(33);

            e.Row.Cells[4].Text = "";
            e.Row.Cells[4].Controls.Add(Imag);

            //Shorten url [3]
            if (e.Row.Cells[3].Text.Length > 19)
            {
                e.Row.Cells[3].Text = e.Row.Cells[3].Text.Substring(0, 16) + "...";
            }

            //End mode [15]
            End.Mode Mode = (End.Mode)Convert.ToInt32(e.Row.Cells[15].Text);

            //Pack [2]
            BannerAdvertPack Pack = new BannerAdvertPack(Convert.ToInt32(e.Row.Cells[2].Text));

            //Status [16]
            AdvertStatus Status = (AdvertStatus)Convert.ToInt32(e.Row.Cells[16].Text);
            e.Row.Cells[16].Text = HtmlCreator.GetColoredStatus(Status);

            //Progress [10]
            e.Row.Cells[10].Text =
                HtmlCreator.GenerateAdProgressHTML(BannerAd).Replace("Clicks", L1.CLICKSSMALL).Replace("days", L1.DAYS);

            if (AppSettings.BannerAdverts.ImpressionsEnabled)
            {
                e.Row.Cells[10].Text = e.Row.Cells[10].Text.Replace(L1.CLICKSSMALL, L1.IMPRESSIONSSMALL);
            }

            //% [11]
            e.Row.Cells[11].Text = BannerAd.ProgressInPercent.ToString() + "%";

            //start [20] stop [21] remove[22]
            if (Status != AdvertStatus.Paused)
            {
                e.Row.Cells[20].Text = "&nbsp;";
            }

            if (Status != AdvertStatus.Active)
            {
                e.Row.Cells[21].Text = "&nbsp;";
            }

            if (!Status.CanBeRemoved())
            {
                e.Row.Cells[22].Text = "&nbsp;";
            }

            //geo [19]

            if (BannerAd.IsGeolocated)
            {
                e.Row.Cells[19].Text = HtmlCreator.GetCheckboxCheckedImage();
            }
            else
            {
                e.Row.Cells[19].Text = HtmlCreator.GetCheckboxUncheckedImage();
            }
        }
        else if (e.Row.RowType == DataControlRowType.Header)
        {
            e.Row.Cells[13].Text = AppSettings.BannerAdverts.ImpressionsEnabled ? L1.IMPRESSIONS : L1.CLICKS;
        }
    }
示例#13
0
    public static Control GetBanner(BannerAdvertDimensions dimensions, Page page, int position = 1)
    {
        allBanners = TryGetFromCache(dimensions, page, position);

        List <BannerAdvert> allBannersFiltered = new List <BannerAdvert>();

        if (AppSettings.BannerAdverts.AdvertisingPolicy == BannerPolicy.SellingPackages)
        {
            Member User = null;
            if (Member.IsLogged)
            {
                User = Member.CurrentInCache;
            }

            foreach (var elem in allBanners)
            {
                if (!elem.IsGeolocated)
                {
                    allBannersFiltered.Add(elem);
                }
                else if (elem.IsGeolocated && Member.IsLogged && elem.BannedCountries.Contains(User.Country))
                {
                    allBannersFiltered.Add(elem);
                }
            }
        }
        else
        {
            allBannersFiltered = allBanners; //No geolocation in Banner Bidding
        }
        _workingBanner = new HyperLink();
        int bannerIndex = random.Next(0, allBannersFiltered.Count);

        _workingBanner = (HyperLink)GetPanelWithDimensionsAndBorder(dimensions, _workingBanner);

        if (allBannersFiltered.Count > 0)
        {
            BannerAdvert ChoosenBanner = allBannersFiltered[bannerIndex];

            var te = new Encryption();
            HttpContext.Current.Session["SurfBannerAdvertID"] = ChoosenBanner.Id;

            if (ChoosenBanner.ShouldBeFinished)
            {
                ChoosenBanner.Status = AdvertStatus.Finished;
                ChoosenBanner.SaveStatus();
            }

            if (AppSettings.BannerAdverts.ImpressionsEnabled)
            {
                //Count impression
                ChoosenBanner.Click();
            }

            //Dynamic banner (HTML code instead of image)
            if (ChoosenBanner.IsDynamic)
            {
                Panel panel = new Panel();
                panel = (Panel)GetPanelWithDimensionsAndBorder(dimensions, panel);

                Literal literal = new Literal();
                literal.Text = ChoosenBanner.BannerHTML;

                panel.Controls.Add(literal);
                return(panel);
            }

            dimensions = ChoosenBanner.Dimensions;
            var Helper = new BannerDisplayerHelper(dimensions);

            //Now lets create Image Web Control and return it

            _workingBanner.Target      = "_blank";
            _workingBanner.NavigateUrl = AppSettings.Site.Url + "link.aspx?id=" + te.EncryptBannerId(ChoosenBanner.Id);

            _workingBanner.Controls.Clear();
            _workingBanner.Controls.Add(Helper.GetBannerImage(ChoosenBanner));
        }
        return(_workingBanner);
    }