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); }
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); }
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); }
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); } }
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; } } }