Пример #1
0
        public int CollectedXp()
        {
            var editionXps = ReadEditions.Sum(x => x.Edition.AwardedXp);
            var badgeXps   = EarnedBadges.Sum(x => x.Badge.AwardedXp);

            return(editionXps + badgeXps);
        }
Пример #2
0
        protected void Page_PreRender(object sender, EventArgs e)
        {
            object patronMessage = Session[SessionKey.PatronMessage];

            if (patronMessage != null)
            {
                object patronMessageLevel = Session[SessionKey.PatronMessageLevel];
                string alertLevel         = "alert-success";
                if (patronMessageLevel != null)
                {
                    alertLevel = string.Format("alert-{0}", patronMessageLevel.ToString());
                    Session.Remove(SessionKey.PatronMessageLevel);
                }
                alertContainer.CssClass = string.Format("alert {0}",
                                                        alertLevel);
                alertGlyphicon.Visible = false;
                object patronMessageGlyph = Session[SessionKey.PatronMessageGlyphicon];
                if (patronMessageGlyph != null)
                {
                    alertGlyphicon.Visible  = true;
                    alertGlyphicon.CssClass = string.Format("glyphicon glyphicon-{0} margin-halfem-right",
                                                            patronMessageGlyph);
                    Session.Remove(SessionKey.PatronMessageGlyphicon);
                }
                alertMessage.Text      = patronMessage.ToString();
                alertContainer.Visible = true;
                Session.Remove(SessionKey.PatronMessage);
            }
            else
            {
                alertContainer.Visible = false;
            }

            if (!PatronTakingTest)
            {
                var earnedBadges = Session[SessionKey.EarnedBadges];
                if (earnedBadges != null)
                {
                    EarnedBadges = earnedBadges.ToString().Replace('|', ',');
                    new SessionTools(Session).ClearEarnedBadges();
                    if (EarnedBadges.Contains("?"))
                    {
                        var currentPatron = Session[SessionKey.Patron] as Patron;
                        if (currentPatron != null)
                        {
                            this.Log().Warn("Invalid EarnedBadges value for {0} contains ?: {1}",
                                            currentPatron.PID,
                                            EarnedBadges);
                        }
                        else
                        {
                            this.Log().Warn("Invalid EarnedBadges value - contains ?: {0}", EarnedBadges);
                        }
                    }
                }
            }
        }
Пример #3
0
        private List <IEarnedBadgeItem> BuildEarnedBadges(BadgeType badgeType)
        {
            var badges             = new List <IEarnedBadgeItem>();
            var earnedBadgesOfType = EarnedBadges.Where(eb => eb.Type == badgeType);

            foreach (var earnedBadge in earnedBadgesOfType)
            {
                if (!badges.Where(eb => eb.Id == earnedBadge.Id).Any())
                {
                    badges.Add(earnedBadge);
                }
            }
            return(badges);
        }
Пример #4
0
 public void AddBadge(Badge badge)
 {
     if (badge == null)
     {
         return;
     }
     if (!EarnedBadges.Any(x => x.BadgeId == badge.Id && x.UserId == this.Id))
     {
         EarnedBadges.Add(new UserBadge
         {
             Badge = badge,
             User  = this
         });
     }
 }
Пример #5
0
        public override void LoadSave(object obj)
        {
            BadgeServiceSave save = obj as BadgeServiceSave;

            if (save != null)
            {
                save.CheckNotNull();
                EarnedBadges.Clear();
                EarnedBadges.AddRange(save.badges);

                //foreach(var data in badgeDatas ) {
                //    data.IsEarned = HasBadge(data.Id);
                //}

                IsLoaded = true;
            }
            else
            {
                LoadDefaults();
            }
        }
Пример #6
0
 public override void LoadDefaults()
 {
     EarnedBadges.Clear();
     IsLoaded = true;
 }