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; } } } }
public static void TryDisplay(LevelNotification notification) { if (notification == null || notification.IsDisplayed) { return; } string title = U5006.GRATZ; string membershipName = notification.MembershipName; StringBuilder sb = new StringBuilder(); sb.Append("<img src=\"Images/Misc/newlevel.png\"/><br/>"); if (notification.IsUpgrade) { sb.Append(U5006.REACHED); sb.AppendFormat(" <b>{0}</b>.", membershipName); if (notification.HasRewards) { sb.Append("<br>" + U5008.REWARDS + ":"); if (notification.PTCCreditsReward.HasValue) { sb.Append("<br>" + notification.PTCCreditsReward.Value + " " + U5006.ADCREDITS); } if (notification.PointsReward.HasValue) { sb.Append("<br>" + notification.PointsReward.Value + " " + AppSettings.PointsName); } if (notification.DRLimitReward.HasValue) { sb.Append("<br>" + U5008.DRLIMITENLARGEDBY + " " + notification.DRLimitReward.Value); } } } else { title = U5008.SORRYDOWNGRADE; sb.Append(U5008.SORRYDOWNGRADETO); sb.AppendFormat(" <b>{0}</b>.", membershipName); } notification.IsDisplayed = true; notification.Save(); NotificationUtils.DisplayCenteredNotification(title, sb.ToString()); }
public static void PointsChanged(Member user, bool setMinPoints = true, bool triggerActions = true) { if (AppSettings.Points.LevelMembershipPolicyEnabled) { var properMembership = LevelMemberships.Get(user.PointsBalance); if (user.MembershipId != properMembership.Id) { string oldMembershipName = user.Membership.Name; var notification = new LevelNotification { UserId = user.Id }; if (user.Membership.MinPointsToHaveThisLevel <= user.PointsBalance) { user.Upgrade(properMembership); History.AddLevelUp(user.Name, user.Membership.Name); if (triggerActions) { //Add random levelup prize LevelupManager manager = new LevelupManager(user); manager.AddPrize(ref notification); } notification.IsUpgrade = true; } else { user.Downgrade(properMembership, setMinPoints); var membershipName = user.Membership.Name; History.AddLevelExpiration(user.Name, membershipName); notification.IsUpgrade = false; } notification.MembershipName = properMembership.Name; notification.IsDisplayed = false; notification.Save(); } } }
public void PageLoad() { HttpContext context = HttpContext.Current; Page page = (Page)context.Handler; if (Member.IsLogged) { if (!page.IsPostBack) { Member User = Member.CurrentInCache; //Member status check if (User.LastLogged != null && User.LastLogged.Value < DateTime.Now.AddDays(-3)) { //Member was logged but the data hasn't been updated //E.g. long cookie time expiration User.Login(); User.Save(); } //Redeirect if account activation fee is turned on and is not paid for current user if (AppSettings.Registration.IsAccountActivationFeeEnabled && !User.IsAccountActivationFeePaid && !AppSettings.Authentication.AnonymousMemberEnabled) { if (AppSettings.Registration.AccountActivationFeeVia == AccountActivationFeeVia.MainSite) { HttpContext.Current.Response.Redirect("~/sites/activation.aspx"); } if (!HttpContext.Current.Request.Url.AbsolutePath.StartsWith("/user/transfer.aspx") && !HttpContext.Current.Request.Url.AbsolutePath.StartsWith("/user/default.aspx")) { HttpContext.Current.Response.Redirect("~/user/default.aspx"); } } //Notifications HasNotifications = (bool)context.Application["HasNotifications"]; if (HasNotifications && (User.CPAOfferCompletedBehavior == CPACompletedBehavior.PopupOnScreen || User.CPAOfferCompletedBehavior == CPACompletedBehavior.PopupAndSendEmail)) { DisplayNotifications = true; } if (LastLastActivityRefreshTime < DateTime.Now.AddMinutes(-5)) { LastLastActivityRefreshTime = DateTime.Now; User.UpdateLastActivityTime(); } if (AppSettings.Points.LevelMembershipPolicyEnabled) { var levelNotifications = LevelNotification.Get(User.Id, false); foreach (var n in levelNotifications) { LevelNotification.TryDisplay(n); } } } //Disable cache for all User.master inner pages //So when you logout, you can't click Browser Back button and see all private content HttpContext.Current.Response.AddHeader("Cache-Control", "no-cache, no-store, must-revalidate"); HttpContext.Current.Response.AddHeader("Pragma", "no-cache"); HttpContext.Current.Response.AddHeader("Expires", "0"); } }