Beispiel #1
0
    public static void TryAddLinkView(string input)
    {
        if (AppSettings.TitanFeatures.ReferralPoolRotatorEnabled)
        {
            try
            {
                if (!String.IsNullOrEmpty(input) && input.StartsWith("*"))
                {
                    int linkId = Convert.ToInt32(input.Substring(1));
                    PoolRotatorLinkUser link = new PoolRotatorLinkUser(linkId);
                    link.ClicksDelivered++;

                    if (link.ClicksDelivered % 1000 == 0)
                    {
                        Member owner = new Member(link.UserId);
                        owner.AddToPointsBalance(owner.Membership.PointsPer1000viewsDeliveredToPoolRotator, "Rotator Link bonus");
                        owner.SaveBalances();
                    }

                    link.Save();
                }
            }
            catch (Exception ex) { }
        }
    }
Beispiel #2
0
 protected static void CreditPointsHelper(ref Member User, int Input, string note, BalanceLogType balanceLogType)
 {
     User.AddToPointsBalance(Input, note, balanceLogType);
     User.PointsToday          += Input;
     User.TotalPointsGenerated += Input;
     User.IncreasePointsEarnings(Input);
 }
Beispiel #3
0
    private static void TryApplyRegistrationBonus(FeatureManager Manager, Member NewMember)
    {
        //Add initial Points
        if (Manager.Reward > 0)
        {
            NewMember = new Member(NewMember.Id);
            NewMember.AddToPointsBalance(Manager.Reward, "Registration bonus", BalanceLogType.RegistrationBonus, true);
            NewMember.SaveBalances();
        }

        RegistrationGiftCrediter.CreditGiftToUser(NewMember);
    }
Beispiel #4
0
    protected void ProfileButton_Click(object sender, EventArgs e)
    {
        if (Page.IsValid)
        {
            Member User = Member.Current;
            RegistrationFieldCreator.Save(User, this.CustomFields, true);

            User.AddToPointsBalance(AppSettings.Authentication.ProfilingSurveyReward, "Profiling survey");
            User.Save();

            Response.Redirect("~/status.aspx?type=profilerok");
        }
    }
Beispiel #5
0
    public void AddPrize(ref LevelNotification notification)
    {
        Random random            = new Random();
        int    RandomBetween1100 = random.Next(1, 101);

        if (RandomBetween1100 <= membership.LevelChanceToWinAnyAward)
        {
            RandomBetween1100 = random.Next(1, 101);
            int PercentHelper = 0;

            if (membership.LevelPointsPrizeChance > 0 && RandomBetween1100 <= PercentHelper + membership.LevelPointsPrizeChance)
            {
                int amount = random.Next(membership.LevelPointsPrizeMin, membership.LevelPointsPrizeMax);
                if (amount > 0)
                {
                    History.Add(user.Name, "Levelup Reward: " + amount + " " + AppSettings.PointsName);
                    user.AddToPointsBalance(amount, "Levelup Reward", triggerActions: false);
                    user.SaveBalances();
                    notification.PointsReward = amount;
                }
            }
            PercentHelper += membership.LevelPointsPrizeChance;

            if (membership.LevelAdCreditsChance > 0 && RandomBetween1100 <= PercentHelper + membership.LevelAdCreditsChance)
            {
                int amount = random.Next(membership.LevelAdCreditsMin, membership.LevelAdCreditsMax);
                if (amount > 0)
                {
                    History.Add(user.Name, "Levelup Reward: " + amount + " " + U5006.ADCREDITS);
                    user.AddToPTCCredits((decimal)amount, "Levelup Reward");
                    user.SaveBalances();
                    notification.PTCCreditsReward = amount;
                }
            }
            PercentHelper += membership.LevelAdCreditsChance;

            if (membership.LevelDRLimitIncreasedChance > 0 && RandomBetween1100 <= PercentHelper + membership.LevelDRLimitIncreasedChance)
            {
                int amount = random.Next(membership.LevelDRLimitIncreasedMin, membership.LevelDRLimitIncreasedMax);
                if (amount > 0)
                {
                    History.Add(user.Name, "Levelup Reward: " + U5008.DRLIMITENLARGEDBY + " " + amount);
                    user.DirectReferralLimitEnlargedBy += amount;
                    user.Save();
                    notification.DRLimitReward = amount;
                }
            }
        }
    }
Beispiel #6
0
    /// <summary>
    /// Rejects the request. Points are returned to member account. Request is being deleted.
    /// </summary>
    public void Reject()
    {
        Member Target = this.User;

        //Return money
        Target.AddToPointsBalance(this.PointsPaid, "Gift Code rejected");
        Target.TotalPointsExchanged -= this.PointsPaid;
        Target.SaveBalances();

        //Points generated stats
        ApplyToStats(-this.PointsPaid);

        //Reject
        this.Status = GiftCodeRequestStatus.Rejected;
        this.Save();
    }
        private static void GivePrizesToWinner(Member user)
        {
            var note = U6010.ROLLDICELOTTERYWINNER;

            if (MainBalancePrize > Money.Zero)
            {
                user.AddToMainBalance(MainBalancePrize, note);
            }
            if (AdBalancePrize > Money.Zero)
            {
                user.AddToPurchaseBalance(AdBalancePrize, note);
            }
            if (PointsPrize > 0)
            {
                user.AddToPointsBalance(PointsPrize, note);
            }

            user.SaveBalances();
        }
Beispiel #8
0
        public static void GivePrize(int rankId, Member user)
        {
            var rank = RankList.Find(e => e.Id == rankId);

            switch (rank.PrizeKind)
            {
            case PrizeKind.MainBalance:
                user.AddToMainBalance(new Money(int.Parse(rank.PrizeValue)), "LeadershipSystem Rank " + rank.RankName);
                user.SaveBalances();
                break;

            case PrizeKind.Points:
                user.AddToPointsBalance(int.Parse(rank.PrizeValue), "LeadershipSystem Rank " + rank.RankName, BalanceLogType.Other, true, false);
                user.SaveBalances();
                break;

            case PrizeKind.CustomPrize:
                //NOTHING
                break;
            }
        }
Beispiel #9
0
        private void TryCreditDirectReferer(PtcAdvert ad)
        {
            if (!User.HasReferer || TitanFeatures.IsGambinos && User.MembershipId == 1)
            {
                return;
            }

            Member referer = new Member(User.ReferrerId);

            if (referer.IsRented)
            {
                return;
            }

            if (referer.HasClickedEnoughToProfitFromReferrals())
            {
                Money amountToCredit = PtcAdvert.CalculateEarningsFromDirectReferral(referer.Membership, ad);

                if (AppSettings.Payments.CommissionBalanceEnabled)
                {
                    referer.AddToCommissionBalance(amountToCredit, "PTC /ref/" + User.Name, BalanceLogType.Other);
                }
                else
                {
                    referer.AddToMainBalance(amountToCredit, "PTC /ref/" + User.Name, BalanceLogType.Other);
                }

                referer.IncreaseEarnings(amountToCredit);
                referer.IncreaseEarningsFromDirectReferral(amountToCredit);
                referer.IncreaseDRClicks();
                referer.IncreaseStatClicks(1);
                referer.IncreaseDRCashLinksEarnings(amountToCredit);

                referer.StatsCommissionsCurrentWeekIncome  += amountToCredit;
                referer.StatsCommissionsCurrentMonthIncome += amountToCredit;

                var pointsEarnings = referer.Membership.DirectReferralAdvertClickEarningsPoints;
                referer.AddToPointsBalance(pointsEarnings, "PTC /ref/" + User.Name);
                referer.IncreaseDirectRefPointsEarnings(pointsEarnings);
                referer.IncreasePointsEarnings(pointsEarnings);

                User.TotalPTCClicksToDReferer    += 1;
                User.TotalEarnedToDReferer       += amountToCredit;
                User.LastDRActivity               = AppSettings.ServerTime;
                User.TotalPointsEarnedToDReferer += pointsEarnings;
                User.SaveStatisticsAndBalances();

                bool isFullSaveRequired1 = false;
                bool isFullSaveRequired2 = false;

                //Achievements trial
                isFullSaveRequired1 = referer.TryToAddAchievements(
                    Prem.PTC.Achievements.Achievement.GetProperAchievements(
                        Prem.PTC.Achievements.AchievementType.AfterClicks, referer.TotalClicks + 1));

                string  inter     = (referer.TotalEarned + amountToCredit).ToClearString();
                Decimal tempMoney = Decimal.Parse(inter, new System.Globalization.CultureInfo("en-US"));

                isFullSaveRequired2 = referer.TryToAddAchievements(
                    Prem.PTC.Achievements.Achievement.GetProperAchievements(
                        Prem.PTC.Achievements.AchievementType.AfterEarning, Convert.ToInt32(tempMoney)));

                if (isFullSaveRequired1 || isFullSaveRequired2)
                {
                    referer.Save();
                }
                else
                {
                    referer.SaveStatisticsAndBalances();
                }
            }
        }
Beispiel #10
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);
        }
Beispiel #11
0
        public static void TransferToBalance(string username, Money money, string from, string transId, string targetBalance,
                                             bool isViaRepresentative = false, string cryptoCurrencyInfo = "")
        {
            Exceptions.HandleNonMsgEx(() =>
            {
                //Add income to stats
                if (!isViaRepresentative)
                {
                    Statistics.Statistics.AddToCashflow(money);
                }

                bool successful = (money >= AppSettings.Payments.MinimumTransferAmount);

                PaymentProcessor paymentProcessor = PaymentAccountDetails.GetFromStringType(from);
                Money moneyWithoutFee             = money;

                if (!isViaRepresentative &&
                    (targetBalance == "Purchase Balance" || targetBalance == "Cash Balance" || targetBalance == "Marketplace Balance"))
                {
                    moneyWithoutFee = PaymentAccountDetails.GetAmountWithoutFee(from, money);
                }

                if (successful)
                {
                    Member user = new Member(username);
                    if (targetBalance == "Purchase Balance")
                    {
                        user.AddToPurchaseBalance(moneyWithoutFee, from + " transfer");
                    }
                    else if (targetBalance == "Cash Balance")
                    {
                        user.AddToCashBalance(moneyWithoutFee, from + " transfer");
                    }
                    else if (targetBalance == "Traffic Balance")
                    {
                        user.AddToTrafficBalance(money, from + " transfer");
                    }
                    else if (targetBalance == "Marketplace Balance")
                    {
                        user.AddToMarketplaceBalance(moneyWithoutFee, from + " transfer");
                    }
                    else if (targetBalance == "Points Balance")
                    {
                        user.AddToPointsBalance(moneyWithoutFee.ConvertToPoints(), from + " transfer");
                    }
                    user.SaveBalances();

                    if (targetBalance == "Purchase Balance" || targetBalance == "Cash Balance" || targetBalance == "Marketplace Balance")
                    {
                        //Update payment proportions
                        PaymentProportionsManager.MemberPaidIn(moneyWithoutFee, paymentProcessor, user);
                    }

                    //Add history
                    History.AddTransfer(username, moneyWithoutFee, from, targetBalance);

                    //TryAchievement
                    bool shouldBeSaved = user.TryToAddAchievements(
                        Achievements.Achievement.GetProperAchievements(
                            Achievements.AchievementType.AfterTransferringOnceAmount, moneyWithoutFee.GetTotals()));

                    if (shouldBeSaved)
                    {
                        user.Save();
                    }

                    //Check the contests
                    Contests.ContestManager.IMadeAnAction(Contests.ContestType.Transfer, user.Name, moneyWithoutFee, 0);
                    PurchasedItem.Create(user.Id, moneyWithoutFee, 1, "Transfer to " + targetBalance, PurchasedItemType.Transfer);

                    //Referral commission for sponsors when user does Cash Balance deposit
                    Titan.CashBalanceCrediter Crediter = (Titan.CashBalanceCrediter)Titan.CrediterFactory.Acquire(user, Titan.CreditType.CashBalanceDeposit);
                    Crediter.TryCreditReferer(moneyWithoutFee);
                }

                //AddLog
                if (!isViaRepresentative)
                {
                    CompletedPaymentLog.Create(paymentProcessor, "Transfer to " + targetBalance, transId, false, username, moneyWithoutFee,
                                               money - moneyWithoutFee, successful, cryptoCurrencyInfo);
                }
            });
        }
Beispiel #12
0
        private void HandleOwnerUser(Member OwnerUser, PtcAdvert Ad, bool FiredByDirectReferral = false, Member WhoFired = null)
        {
            bool CreditMoney = OwnerUser.HasClickedEnoughToProfitFromReferrals();

            //Check if earning only from Standard and Extended is enabled
            //TO REMOVE
            if (CreditMoney && AppSettings.Misc.ExposureRefEarningsEnabled)
            {
                if (Ad.ExposureType == AdExposure.Standard || Ad.ExposureType == AdExposure.Extended)
                {
                    CreditMoney = true;
                }
                else
                {
                    CreditMoney = false;
                }
            }

            if (CreditMoney)
            {
                var Earnings = FiredByDirectReferral ? PtcAdvert.CalculateEarningsFromDirectReferral(OwnerUser, Ad) : PtcAdvert.CalculateEarningsFromRentedReferral(OwnerUser, Ad);

                if (FiredByDirectReferral)
                {
                    OwnerUser.AddToMainBalance(Earnings, "PTC /ref/" + Username, BalanceLogType.Other);
                }
                else
                {
                    OwnerUser.AddToMainBalance(Earnings, "PTC /ref/", BalanceLogType.Other);
                }

                bool isFullSaveRequired1 = false;
                bool isFullSaveRequired2 = false;

                //Achievements trial
                isFullSaveRequired1 = OwnerUser.TryToAddAchievements(
                    Prem.PTC.Achievements.Achievement.GetProperAchievements(
                        Prem.PTC.Achievements.AchievementType.AfterClicks, OwnerUser.TotalClicks + 1));

                string  inter     = (OwnerUser.TotalEarned + Earnings).ToClearString();
                Decimal tempMoney = Decimal.Parse(inter, new System.Globalization.CultureInfo("en-US"));


                isFullSaveRequired2 = OwnerUser.TryToAddAchievements(
                    Prem.PTC.Achievements.Achievement.GetProperAchievements(
                        Prem.PTC.Achievements.AchievementType.AfterEarning, Convert.ToInt32(tempMoney)));

                OwnerUser.IncreaseEarnings(Earnings);
                OwnerUser.IncreaseStatClicks(1);

                if (FiredByDirectReferral)
                {
                    var pointsEarnings = OwnerUser.Membership.DirectReferralAdvertClickEarningsPoints;
                    OwnerUser.AddToPointsBalance(pointsEarnings, "PTC /ref/" + Username);
                    OwnerUser.IncreaseDRClicks();
                    OwnerUser.IncreaseEarningsFromDirectReferral(Earnings);
                    if (WhoFired != null)
                    {
                        WhoFired.TotalPTCClicksToDReferer += 1;
                        WhoFired.TotalEarnedToDReferer    += Earnings;
                        WhoFired.SaveStatisticsAndBalances();
                    }
                }
                else
                {
                    OwnerUser.IncreaseRRClicks();
                }

                if (isFullSaveRequired1 || isFullSaveRequired2)
                {
                    OwnerUser.Save();
                }
                else
                {
                    OwnerUser.SaveStatisticsAndBalances();
                }
            }
            else
            {
                OwnerUser.IncreaseStatClicks(1);

                if (FiredByDirectReferral)
                {
                    var Earnings = PtcAdvert.CalculateEarningsFromDirectReferral(OwnerUser, Ad);
                    OwnerUser.AddToMainBalance(Earnings, "PTC /ref/" + Username, BalanceLogType.Other);
                    OwnerUser.IncreaseEarnings(Earnings);

                    var pointsEarnings = OwnerUser.Membership.DirectReferralAdvertClickEarningsPoints;
                    OwnerUser.AddToPointsBalance(pointsEarnings, "PTC /ref/" + Username);
                    OwnerUser.IncreaseDRClicks();
                    OwnerUser.TotalEarned += Earnings;

                    if (WhoFired != null)
                    {
                        WhoFired.TotalPTCClicksToDReferer += 1;
                        WhoFired.TotalEarnedToDReferer    += Earnings;
                        WhoFired.LastDRActivity            = AppSettings.ServerTime;
                        WhoFired.SaveStatisticsAndBalances();
                    }
                }
                else
                {
                    OwnerUser.IncreaseRRClicks();
                }

                OwnerUser.SaveStatisticsAndBalances();
            }
        }