コード例 #1
0
ファイル: ContestCrediter.cs プロジェクト: dovanduy/titan
        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();
        }
コード例 #2
0
ファイル: OfferwallCrediter.cs プロジェクト: dovanduy/titan
        /// <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);
        }
コード例 #3
0
ファイル: OfferwallCrediter.cs プロジェクト: dovanduy/titan
        /// <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);
        }
コード例 #4
0
ファイル: CashLinkCrediter.cs プロジェクト: dovanduy/titan
        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);
        }
コード例 #5
0
ファイル: OfferwallCrediter.cs プロジェクト: dovanduy/titan
        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);
        }
コード例 #6
0
        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);
        }
コード例 #7
0
        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);
        }
コード例 #8
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);
        }