public static void ReleaseCPA(CPAPostbackLog log) { try { var where = TableHelper.MakeDictionary("NetworkOfferIdInt", log.OfferId); where.Add("AdvertiserUsername", log.NetworkName); CPAOffer OurOffer = TableHelper.SelectRows <CPAOffer>(where)[0]; //TODO (What if offer has been deleted in the meantime?) //Credit CPAGPTCrediter Crediter = (CPAGPTCrediter)CrediterFactory.Acquire(log.Username, CreditType.CPAGPTOffer); var conditions = TableHelper.MakeDictionary("Username", log.Username); conditions.Add("OfferId", OurOffer.Id); conditions.Add("OfferStatus", (int)OfferStatus.Pending); OfferRegisterEntry entry = TableHelper.SelectRows <OfferRegisterEntry>(conditions)[0]; CPAManager.AcceptEntryManually(entry, new Member(entry.Username)); //Update log log.Status = CPAPostBackLogStatus.CreditedByNetworkPointsUnlocked; log.Save(); } catch (Exception ex) { ErrorLogger.Log(ex); } }
public static void AwardMember(Member Winner, PrizeType Type, Money Value, int place) { //Go with the Crediter ContestCrediter Crediter = (ContestCrediter)CrediterFactory.Acquire(Winner, CreditType.Contest); Crediter.Credit(Type, Value, place); }
private void DepositCryptocurrency(Member user, decimal amountInCryptocurrency) { Money moneyAmount = ConvertToMoney(amountInCryptocurrency); LogType LogType = ErrorLoggerHelper.GetTypeFromProcessor(DepositApiProcessor); user.Reload(); if (DepositTarget == DepositTargetBalance.PurchaseBalance) { user.AddToPurchaseBalance(moneyAmount, Code + " deposit", BalanceLogType.Other); user.SaveBalances(); } if (DepositTarget == DepositTargetBalance.CashBalance) { user.AddToCashBalance(moneyAmount, Code + " deposit", BalanceLogType.Other); user.SaveBalances(); //Referral commission for sponsors when user does Cash Balance deposit CashBalanceCrediter Crediter = (CashBalanceCrediter)CrediterFactory.Acquire(user, CreditType.CashBalanceDeposit); Crediter.TryCreditReferer(moneyAmount); } if (DepositTarget == DepositTargetBalance.Wallet) { user.AddToCryptocurrencyBalance(Type, amountInCryptocurrency, Code + " Wallet deposit", BalanceLogType.WalletDeposit); } PaymentProportionsManager.MemberPaidIn(moneyAmount, CryptocurrencyTypeHelper.ConvertToPaymentProcessor(Type), user); History.AddTransfer(user.Name, moneyAmount, Code + " deposit", DepositTarget.ToString()); ContestManager.IMadeAnAction(ContestType.Transfer, user.Name, moneyAmount, 0); }
protected void ProcceedWithCredit(int Id) { //Stats var targetStatValue = new Prem.PTC.Statistics.Statistics(Prem.PTC.Statistics.StatisticsType.PTCClicks); targetStatValue.AddToData1(1); targetStatValue.Save(); if (Member.IsLogged) { RegisterUserValidationSummary.Visible = true; //Anti-cheat: Check if ad is not already watched var User = Member.GetLoggedMember(Context); if (User.AdsViewed.Contains(Id)) { DisplayInfo(L1.ALREADYWATCHED, false); } else { CaptchaPanel.Visible = false; var ad = new PtcAdvert(Id); //Use Crediter PtcCrediter Crediter = (PtcCrediter)CrediterFactory.Acquire(User, Titan.CreditType.PTC); Money Calculated = Crediter.CreditMember(ad); DisplayInfo(L1.YOUVEBEENCREDITED + " <b>" + Calculated.ToString() + "</b> " + L1.AND + " <b>" + User.Membership.AdvertPointsEarnings.ToString() + "</b> " + AppSettings.PointsName + " " + L1.FORTHISAD, true); //Display "Feel free with Ad URL" text FeelFreeLiteral.Text = ": <a href=\"" + ad.TargetUrl + "\" target=\"_blank\">" + ad.TargetUrl + "</a>"; //Force notifiaction refresh (Ads) NotificationManager.RefreshWithMember(NotificationType.NewAds, User); //Modify the ad info ad.Click(); if (ad.ShouldBeFinished) { ad.Status = AdvertStatus.Finished; ad.Save(); } else { ad.SaveClicks(); } AnimatedHeight = 90; } } else { //Non-logged in member //Just display 'you must login' message DisplayInfo(L1.YOUMUSTBELOGGED, false); } AdInfoContainer.Text = ""; }
protected void payViaCashBalanceButton_Click(object sender, EventArgs e) { User.SubtractFromCashBalance(AppSettings.Registration.AccountActivationFee, "Account activation fee", BalanceLogType.AccountActivationFee); User.IsAccountActivationFeePaid = true; User.Save(); AccountActivationFeeCrediter Crediter = (AccountActivationFeeCrediter)CrediterFactory.Acquire(User, CreditType.AccountActivationFee); Crediter.CreditReferer(AppSettings.Registration.AccountActivationFee); SuccessInfoLiteral.Text = U6011.ACTIVATIONFEEPAID; SuccessInfoLiteralPlaceHolder.Visible = true; Response.AddHeader("REFRESH", "5;URL=/user/default.aspx"); }
public static void TryMarkAccountActivationFeeAsPaid(Member user, Money amount, string from, string transId, string cryptoCurrencyInfo) { bool Successful = false; try { String Message = String.Format(" {0} money for account activation. ", amount); if (amount < AppSettings.Registration.AccountActivationFee) { Message += "Amount is lower than expected! Account not activated."; History.AddEntry(Member.CurrentName, HistoryType.Transfer, Message); PoolDistributionManager.AddProfit(ProfitSource.AccountActivationFee, amount); throw new Exception(String.Format("Account activation fee is lower than expected! ({0})", amount)); } AccountActivationFeeCrediter Crediter = (AccountActivationFeeCrediter)CrediterFactory.Acquire(user, CreditType.AccountActivationFee); var moneyLeftForPools = Crediter.CreditReferer(amount); //Pools PoolDistributionManager.AddProfit(ProfitSource.AccountActivationFee, moneyLeftForPools); user.IsAccountActivationFeePaid = true; user.Save(); Message += "Account activated."; History.AddEntry(Member.CurrentName, HistoryType.Transfer, Message); Successful = true; } catch (Exception ex) { ErrorLogger.Log(ex); } PaymentProcessor PP = PaymentAccountDetails.GetFromStringType(from); CompletedPaymentLog.Create(PP, "Activation Fee", transId, false, user.Name, amount, Money.Zero, Successful, cryptoCurrencyInfo); }
public static string LikeUnlike(string adId, bool credit) { string succMsg = string.Empty; if (FacebookMember.Logged() != null) { Member User = Member.Current; FacebookMember FbUser; FacebookAdvert Ad = new FacebookAdvert(Convert.ToInt32(adId)); FbUser = new FacebookMember(FacebookMember.Logged()); //Facebook security (banning multiple accounts instantly) User.FacebookName = FbUser.Name; User.Save(); AntiCheatSystem.AfterFacebookLogin(User); if (FbUser == null) { return(U5008.MUSTCONNECTFB); } if (!HasUserMeetRequirements(Ad, FbUser)) { return(L1.NOTMEETREQUIREMENTS); } var userLikes = User.FbLikesToday; var maxLikes = User.Membership.MaxFacebookLikesPerDay; if (userLikes >= maxLikes) { return(string.Format(U6004.REACHEDMAXLIKESPERDAY, maxLikes)); } HttpContext.Current.Session["fbcookie"] = "notok"; if (credit) { Ad.Click(); succMsg = U3501.YOUHAVEBEENCREDITED + " (" + AppSettings.Facebook.PointsPerLike + " " + AppSettings.PointsName + ")"; } else { Ad.Unclick(); succMsg = string.Format(U5008.POINTSREVERSED, AppSettings.Facebook.PointsPerLike + " " + AppSettings.PointsName); } if (Ad.ShouldBeFinished) { Ad.Status = AdvertStatus.Finished; } Ad.SaveClicks(); Ad.Save(); //Use Crediter FacebookCrediter Crediter = (FacebookCrediter)CrediterFactory.Acquire(User, CreditType.FacebookLike); Crediter.CreditMember(Ad, credit); NotificationManager.RefreshWithMember(NotificationType.NewFacebookAds, User); return(succMsg); } else { return(U5008.MUSTCONNECTFB); } }
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 (URL.Enabled) { throw new MsgException(U4200.CHECKURL); } TrafficGridAdvert Ad = new TrafficGridAdvert(); TrafficGridAdvertPack Pack = new TrafficGridAdvertPack(Int32.Parse(ddlOptions.SelectedValue)); Money AdCost = Pack.Price; //Set basics Ad.Title = InputChecker.HtmlEncode(Title.Text, Title.MaxLength, L1.TITLE); Ad.TargetUrl = URL.Text; if (Member.IsLogged) { //Take money and save the user var targetBalance = TargetBalanceRadioButtonList.TargetBalance; PurchaseOption.ChargeBalance(User, AdCost, TargetBalanceRadioButtonList.Feature, targetBalance, "TrafficGrid advertising"); Ad.TargetBalance = targetBalance; Ad.Advertiser = Advertiser.AsMember(User.Name); Ad.Status = AdvertStatusExtensions.GetStartingStatus(); } else { Ad.Advertiser = Advertiser.AsStranger(OutEmail.Text); Ad.Status = AdvertStatus.Null; } //Add the ad to the db (for approval) Ad.Price = AdCost; Ad.Pack = Pack; Ad.Save(); if (Member.IsLogged) { if (Ad.Status == AdvertStatus.Active || Ad.Status == AdvertStatus.Paused) { var Crediter = (TrafficGridCrediter)CrediterFactory.Acquire(User, Titan.CreditType.TrafficGrid); Crediter.CreditReferer(AdCost); } //Achievements trial int UserCurrentCampaigns = TableHelper.CountOf <TrafficGridAdvert>(TableHelper.MakeDictionary("CreatorUsername", User.Name)); bool ShouldBeSaved = User.TryToAddAchievements( Prem.PTC.Achievements.Achievement.GetProperAchievements( Prem.PTC.Achievements.AchievementType.AfterAdvertisingTrafficGridCampaigns, UserCurrentCampaigns)); if (ShouldBeSaved) { User.Save(); } //Add history entry 1 History.AddPurchase(User.Name, AdCost, "TrafficGrid campaign"); //Add history entry 2 string entryText = ""; if (Pack.Ends.EndMode == End.Mode.Clicks) { entryText = (Convert.ToInt32(Pack.Ends.Value)).ToString() + " ad clicks"; } else if (Pack.Ends.EndMode == End.Mode.Days) { entryText = (Convert.ToInt32(Pack.Ends.Value)).ToString() + " ad days"; } History.AddPurchase(User.Name, Pack.Price, entryText); Title.Text = ""; URL.Text = ""; URL.Enabled = true; CheckURLButton.Visible = true; SuccMessagePanel.Visible = true; SuccMessage.Text = Ad.Status == AdvertStatus.WaitingForAcceptance ? U4200.ADAWAITSAPPROVAL : U3501.ADCREATED; MatrixBase.TryAddMemberAndCredit(User, Ad.Price, AdvertType.TrafficGrid); } else { //Show buttons CreateAdButton.Visible = false; PaymentButtons.Visible = true; PaymentButtons.Text = GenerateHTMLButtons.GetPaymentButtons(new BuyAdvertButtonGenerator <ITrafficGridAdvertPack>(Ad)); } } catch (MsgException ex) { ErrorMessagePanel.Visible = true; ErrorMessage.Text = ex.Message; } catch (Exception ex) { ErrorLogger.Log(ex); throw ex; } } }