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