Пример #1
0
    private DataTable GetGridViewData()
    {
        var dt = new DataTable();

        dt.Columns.Add("Date", "a".GetType());
        dt.Columns.Add("Banner", "a".GetType());
        dt.Columns.Add("Portfolio units", "a".GetType());
        dt.Columns.Add("Promotion", "a".GetType());
        dt.Columns.Add("Revenue Share Ads", "a".GetType());
        dt.Columns.Add("Charity", "a".GetType());

        for (int j = 0; j < 14; j++)
        {
            DateTime date = DateTime.Now.Date.AddDays(-j);

            var dr = dt.NewRow();
            dr["Date"]              = date.ToShortDateString();
            dr["Banner"]            = EarningsStatsManager.GetEarnings(EarningsStatsType.Banner, date).ToString();
            dr["Portfolio units"]   = EarningsStatsManager.GetEarnings(EarningsStatsType.PortfolioUnits, date).ToString();
            dr["Promotion"]         = EarningsStatsManager.GetEarnings(EarningsStatsType.Promotion, date).ToString();
            dr["Revenue Share Ads"] = EarningsStatsManager.GetEarnings(EarningsStatsType.RevenueShareAds, date).ToString();
            dr["Charity"]           = EarningsStatsManager.GetEarnings(EarningsStatsType.Charity, date).ToString();
            dt.Rows.Add(dr);
        }

        return(dt);
    }
Пример #2
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);
        }
Пример #3
0
        public static void SellShare(ShareOnMarket share, Member user)
        {
            //Add transaction
            PortfolioShareTransation transaction = new PortfolioShareTransation();

            transaction.BuyerUsername      = user.Name;
            transaction.DateSold           = DateTime.Now;
            transaction.PortfolioProductId = share.PortfolioProductId;
            transaction.SellerUsername     = share.Username;
            transaction.SoldAmount         = share.Price;
            transaction.SoldFee            = CalculateFee(share.Price);
            transaction.Units = share.SharesToSell;
            transaction.Save();

            //Remove old share
            PortfolioShare Old = new PortfolioShare(share.PortfolioShareId);

            Old.Shares -= share.SharesToSell;
            Old.Save();

            //Add new share
            PortfolioShare New = GetProperShare(share, user);

            New.Shares += share.SharesToSell;
            New.Save();

            //Remove from market
            share.Delete();

            //Earnings stats
            EarningsStatsManager.Add(EarningsStatsType.PortfolioUnits, transaction.SoldFee);
        }
Пример #4
0
 private static void HandleEarningStats(BannerBid bid, BannerAuction auction, BannerBid refundBid)
 {
     EarningsStatsManager.Add(EarningsStatsType.Banner, bid.BidValue);
     if (refundBid != null)
     {
         EarningsStatsManager.Subtract(EarningsStatsType.Banner, refundBid.BidValue);
     }
 }
Пример #5
0
    protected void CreateAdButton_Click(object sender, EventArgs e)
    {
        ErrorMessagePanel.Visible = false;
        SuccMessagePanel.Visible  = false;

        if (Page.IsValid)
        {
            try
            {
                AppSettings.DemoCheck();
                Member User = null;

                if (Member.IsLogged)
                {
                    User = Member.Logged(Context);
                }

                if (ddlOptions.SelectedItem == null)
                {
                    throw new MsgException(U6002.BANNERPACKERROR);
                }

                BannerAdvertPack Pack   = new BannerAdvertPack(Int32.Parse(ddlOptions.SelectedValue));
                Money            AdCost = Pack.Price;

                if (chbGeolocation.Checked)
                {
                    AdCost += AppSettings.BannerAdverts.GeolocationCost;

                    //Now get it from client-state
                    var CTable   = Request.Form[GeoCountriesValues.Name].Substring(1).Split('#');
                    var geoUList = GeolocationUtils.GeoCountData.Keys;

                    foreach (string s in CTable)
                    {
                        if (geoUList.Contains <string>(s))
                        {
                            NewBannerAdvert.BannedCountries.Add(s);
                        }
                    }
                }

                if (Member.IsLogged)
                {
                    var targetBalance = TargetBalanceRadioButtonList.TargetBalance;
                    PurchaseOption.ChargeBalance(User, AdCost, TargetBalanceRadioButtonList.Feature, targetBalance, "Banner campaign");

                    NewBannerAdvert.Advertiser    = Advertiser.AsMember(User.Name);
                    NewBannerAdvert.Status        = AdvertStatusExtensions.GetStartingStatus();
                    NewBannerAdvert.TargetBalance = targetBalance;
                }
                else
                {
                    NewBannerAdvert.Advertiser = Advertiser.AsStranger(OutEmail.Text);
                    NewBannerAdvert.Status     = AdvertStatus.Null;
                }

                //Set basics - add to db
                NewBannerAdvert.TargetUrl = URL.Text;
                NewBannerAdvert.Pack      = Pack;
                NewBannerAdvert.Price     = AdCost;
                NewBannerAdvert.Save();

                if (Member.IsLogged)
                {
                    if (AppSettings.BannerAdverts.AdvertisingPolicy != BannerPolicy.BannerBidding &&
                        (NewBannerAdvert.Status == AdvertStatus.Active || NewBannerAdvert.Status == AdvertStatus.Paused))
                    {
                        BannerCrediter crediter          = new BannerCrediter(User);
                        Money          moneyLeftForPools = crediter.CreditReferer(NewBannerAdvert.Price);

                        PoolDistributionManager.AddProfit(ProfitSource.Banners, moneyLeftForPools);
                    }

                    //Achievements trial
                    int UserCurrentCampaigns =
                        TableHelper.CountOf <BannerAdvert>(TableHelper.MakeDictionary("CreatorUsername", User.Name));
                    bool ShouldBeSaved = User.TryToAddAchievements(
                        Prem.PTC.Achievements.Achievement.GetProperAchievements(
                            Prem.PTC.Achievements.AchievementType.AfterAdvertisingBannerCampaigns, UserCurrentCampaigns));

                    if (ShouldBeSaved)
                    {
                        User.Save();
                    }

                    //Add history entry 1
                    History.AddPurchase(User.Name, AdCost, "Banner campaign");

                    SuccMessagePanel.Visible = true;
                    SuccMessage.Text         = U3501.ADCREATED;

                    //Earning stats
                    EarningsStatsManager.Add(EarningsStatsType.Banner, AdCost);

                    MatrixBase.TryAddMemberAndCredit(User, AdCost, AdvertType.Banner);

                    Response.Redirect("banners.aspx");
                }
                else
                {
                    //Show buttons
                    PaymentButtons.Visible = true;
                    CreateAdButton.Visible = false;

                    PaymentButtons.Text =
                        GenerateHTMLButtons.GetPaymentButtons(
                            new BuyAdvertButtonGenerator <IBannerAdvertPack>(NewBannerAdvert));
                }

                Session["YourCampaigns_NewBannerAdvert"] = null;
            }
            catch (MsgException ex)
            {
                ErrorMessagePanel.Visible = true;
                ErrorMessage.Text         = ex.Message;
            }
            catch (Exception ex)
            {
                ErrorLogger.Log(ex);
                throw ex;
            }
        }
    }