public void Credit(PrizeType Type, Money Value, int Place) { bool IsRentRefReward = false; int RefsRented = 0; switch (Type) { case PrizeType.PurchaseBalance: User.AddToPurchaseBalance(Value, "Contest prize", BalanceLogType.Other); break; case PrizeType.DirectRefLimit: User.DirectReferralLimitEnlargedBy += Value.GetRealTotals(); break; case PrizeType.MainBalance: base.CreditMainBalance(Value, "Contest prize", BalanceLogType.Other); break; case PrizeType.Points: base.CreditPoints(Value.GetRealTotals(), "Contest prize", BalanceLogType.Other); break; case PrizeType.RentalBalance: User.AddToTrafficBalance(Value, "Contest prize", BalanceLogType.Other); break; case PrizeType.RentedReferral: IsRentRefReward = true; var rrm = new Prem.PTC.Referrals.RentReferralsSystem(User.Name, User.Membership); int SpotsLeft = User.Membership.RentedReferralsLimit - rrm.GetUserRentedReferralsCount(); RefsRented = ContestManager.Minimum(SpotsLeft, Value.GetRealTotals()); if (RefsRented > 0) { rrm.RentReferrals(RefsRented); } break; } if (!IsRentRefReward) { User.Save(); History.AddContestWin(User.Name, Place, ContestManager.GetPrizeProperObject(Type, Value).ToString() + " [%" + (int)Type + "%]"); } else { History.AddContestWin(User.Name, Place, RefsRented + " referrals"); } User.Save(); }
/// <summary> /// Fired when reversed /// </summary> /// <param name="Input"></param> /// <param name="As"></param> /// <param name="OfferwallName"></param> /// <param name="RequiresConversion"></param> /// <returns></returns> public Money ReverseCredit(Money Input, CreditAs creditAs, string OfferwallName, bool RequiresConversion = false) { Money Calculated = Credit(Input.Negatify(), creditAs, OfferwallName + " - REVERSAL", RequiresConversion); User.CompletedOffersFromOfferwallsToday -= 1; if (Calculated.GetRealTotals() <= -100) { User.CompletedOffersMoreThan100pFromOfferwallsToday -= 1; } if (OfferwallName.Contains("Wannads")) { User.CompletedDailyOffersFromOfferwallsToday -= 1; } User.Save(); ContestManager.IMadeAnAction(ContestType.Offerwalls, User.Name, null, -1); //Offerwalls included in Clicks Contest Offerwall currentOfferWall = new Offerwall(OfferwallName); if (currentOfferWall.IsIncludedInPTCContest) { ContestManager.IMadeAnAction(ContestType.Click, User.Name, null, -1); } return(Calculated); }
/// <summary> /// Fired when credited /// </summary> /// <param name="Input"></param> /// <param name="As"></param> /// <param name="OfferwallName"></param> /// <param name="RequiresConversion"></param> /// <returns></returns> //Wall.CreditAs, Wall.DisplayName, Wall.RequiresConversion public Money CreditMember(Money Input, Offerwall Wall) { Money Calculated = Credit(Input, Wall.CreditAs, Wall.DisplayName, Wall.RequiresConversion); User.CompletedOffersFromOfferwallsToday += 1; if (Calculated.GetRealTotals() >= 100) { User.CompletedOffersMoreThan100pFromOfferwallsToday += 1; } if (Wall.DisplayName.Contains("Wannads")) { User.CompletedDailyOffersFromOfferwallsToday += 1; } //Slot machine chances SlotMachine.SlotMachine.TryAddChances(User); User.Save(); ContestManager.IMadeAnAction(ContestType.Offerwalls, User.Name, null, 1); //Offerwalls included in Clicks Contest if (Wall.IsIncludedInPTCContest) { ContestManager.IMadeAnAction(ContestType.Click, User.Name, null, 1); } return(Calculated); }
public Money Credit(PtcAdvert Ad) { Money Calculated = Ad.MoneyToClaimAsCashLink; base.CreditMainBalance(Calculated, "CashLink", BalanceLogType.CashLinkClick, false); //OK mark as watched and credit List <int> av = User.AdsViewed; av.Add(Ad.Id); User.AdsViewed = av; User.LastActive = DateTime.Now; Money NewTotalEarned = (User.TotalEarned + Calculated); User.TryToAddAchievements( Prem.PTC.Achievements.Achievement.GetProperAchievements( Prem.PTC.Achievements.AchievementType.AfterEarning, NewTotalEarned.GetRealTotals())); User.IncreaseUserStatClicks(1); User.IncreaseStatClicks(1); User.IncreaseCashLinksEarnings(Calculated); //Now let's credit the referrer CreditReferersMainBalance(Ad.MoneyToClaimAsCashLink, "CashLink /ref/" + User.Name, BalanceLogType.CashLinkRefClick, 1, null, false); User.Save(); return(Calculated); }
private Money Credit(Money Input, CreditAs creditAs, string OfferwallName, bool RequiresConversion = false, bool IsReversal = false) { Money Calculated = CalculatedAndConversion(Input, base.User, Wall); if (creditAs == CreditAs.Points) { Calculated = CLP.CLPManager.ProceedWithOfferwall(Calculated.GetRealTotals(), User); base.CreditPoints(Calculated.GetRealTotals(), "Offer Wall: " + OfferwallName, BalanceLogType.Other); base.CreditReferersPoints(Calculated.GetRealTotals(), "Offer Wall /ref/ " + User.Name, BalanceLogType.Other); } if (creditAs == CreditAs.MainBalance) { Calculated = CLP.CLPManager.ProceedWithOfferwall(Calculated, User); base.CreditMainBalance(Calculated, "Offer Wall: " + OfferwallName, BalanceLogType.Other); base.CreditReferersMainBalance(Calculated, "Offer Wall /ref/ " + User.Name, BalanceLogType.Other); } return(Calculated); }
public Money Credit(UniqueAd ad) { Money calculated = ad.RewardPerView; base.CreditMainBalance(calculated, "Unique Ad Click", BalanceLogType.UniqueAdClick); ad.ViewsReceived += 1; if (ad.ShouldBeFinished) { ad.Status = AdvertStatus.Finished; } ad.Save(); UniqueAdClick adClick = new UniqueAdClick(); adClick.UserId = User.Id; adClick.UniqueAdId = ad.Id; adClick.Save(); User.LastActive = DateTime.Now; Money newTotalEarned = (User.TotalEarned + calculated); User.TryToAddAchievements( Prem.PTC.Achievements.Achievement.GetProperAchievements( Prem.PTC.Achievements.AchievementType.AfterEarning, newTotalEarned.GetRealTotals())); //Now let's credit the referrer //CreditReferersMainBalance(ad.RewardPerView, CalculateRefererEarnings, "Unique Ad /ref/" + User.Name, BalanceLogType.UniqueAdRefClick); User.Save(); return(calculated); }
public Money Credit(Money Calculated, CreditAs As, int offerId, string OfferTitle, int CPACompletedIncreasedBy = 1, bool isReversal = false, string NetworkName = "") { string balanceLogsNote = "CPA offer (" + (NetworkName != "" ? NetworkName + ": " : "") + OfferTitle + ") "; string balanceLogsNoteRef = "CPA offer " + "/ref/" + User.Name + " (" + (NetworkName != "" ? NetworkName + ": " : "") + OfferTitle + ") "; if (As == CreditAs.Points) { Calculated = CLP.CLPManager.ProceedWithCPA(Calculated.GetRealTotals(), User, isReversal); base.CreditPoints(Calculated.GetRealTotals(), balanceLogsNote, BalanceLogType.Other); base.CreditReferersPoints(Calculated.GetRealTotals(), balanceLogsNoteRef, BalanceLogType.Other); if (isReversal == false) { History.AddCPAOfferCompleted(User.Name, OfferTitle, Calculated.GetRealTotals().ToString() + " " + AppSettings.PointsName, NetworkName, offerId); } Mailer.TryToSendCPACreditedMessage(User, Resources.L1.HISTORY_10 + ": " + OfferTitle + "(" + Calculated.GetRealTotals().ToString() + " " + AppSettings.PointsName + ")"); } if (As == CreditAs.MainBalance) { Calculated = CLP.CLPManager.ProceedWithCPA(Calculated, User, isReversal); base.CreditMainBalance(Calculated, balanceLogsNote, BalanceLogType.Other); base.CreditReferersMainBalance(Calculated, balanceLogsNoteRef, BalanceLogType.Other, 1, null, true); if (isReversal == false) { History.AddCPAOfferCompleted(User.Name, OfferTitle, Calculated.ToString(), NetworkName, offerId); } Mailer.TryToSendCPACreditedMessage(User, Resources.L1.HISTORY_10 + ": " + OfferTitle + "(" + Calculated.ToString() + ")"); } //Slot machine chances SlotMachine.SlotMachine.TryAddChances(User); //Achievements trial User.TryToAddAchievements( Prem.PTC.Achievements.Achievement.GetProperAchievements( Prem.PTC.Achievements.AchievementType.AfterCPAOffersCompleted, User.TotalCPACompleted)); User.Save(); if (!isReversal) { if (CPAOfferContestManager.IsIncludedInContest(offerId)) { ContestManager.IMadeAnAction(Prem.PTC.Contests.ContestType.Offer, User.Name, null, 1); } } else { if (CPAOfferContestManager.IsIncludedInContest(offerId)) { ContestManager.IMadeAnAction(Prem.PTC.Contests.ContestType.Offer, User.Name, null, -1); } } return(Calculated); }
public Money CreditMember(PtcAdvert Ad, bool isFromAutosurf = false) { Money Calculated = PtcAdvert.CalculateNormalMemberEarnings(User, Ad); base.CreditMainBalance(Calculated, "PTC", BalanceLogType.Other); //To not overflow the logs if (User.Membership.AdvertPointsEarnings > 0) { base.CreditPoints(User.Membership.AdvertPointsEarnings, "PTC", BalanceLogType.Other); } //Ad Credits? if (AppSettings.PtcAdverts.PTCCreditsEnabled) { User.AddToPTCCredits(User.Membership.PTCCreditsPerView, "PTC"); //Credit advertiser if (Ad.Advertiser.Is(Advertiser.Creator.Member) && Ad.AdvertiserUserId != User.Id) { Member UplineAdvertiser = new Member(Ad.AdvertiserUserId); UplineAdvertiser.AddToPointsBalance(UplineAdvertiser.Membership.PointsYourPTCAdBeingViewed, "PTC Ad Viewed"); UplineAdvertiser.SaveBalances(); Ad.PointsEarnedFromViews += UplineAdvertiser.Membership.PointsYourPTCAdBeingViewed; Ad.Save(); } } //OK mark as watched and credit List <int> av = User.AdsViewed; av.Add(Ad.Id); User.AdsViewed = av; User.LastActive = DateTime.Now; if (isFromAutosurf) { User.PtcAutoSurfClicksThisMonth += 1; } User.PtcSurfClicksThisMonth += 1; //Achievements User.TryToAddAchievements( Prem.PTC.Achievements.Achievement.GetProperAchievements( Prem.PTC.Achievements.AchievementType.AfterClicks, User.TotalClicks + 1)); Money NewTotalEarned = (User.TotalEarned + Calculated); User.TryToAddAchievements( Prem.PTC.Achievements.Achievement.GetProperAchievements( Prem.PTC.Achievements.AchievementType.AfterEarning, NewTotalEarned.GetRealTotals())); User.IncreaseUserStatClicks(1); User.IncreaseStatClicks(1); User.IncreaseCashLinksEarnings(Calculated); //Slot machine chances SlotMachine.SlotMachine.TryAddChances(User); User.Save(); //Check the contests Prem.PTC.Contests.ContestManager.IMadeAnAction(Prem.PTC.Contests.ContestType.Click, User.Name, null, 1); var rrm = new RentReferralsSystem(User.Name, User.Membership); rrm.IClicked(Ad); TryCreditDirectReferer(Ad); return(Calculated); }