Example #1
0
        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);
        }