public void RefreshStats(PersonSetting person)
 {
     _reputation.Text             = person.GetReputation().ToString(CultureInfo.InvariantCulture);
     _achievements.Text           = person.Achievements.Count.ToString(CultureInfo.InvariantCulture);
     _failPercent.Text            = string.Format("{0:p1}", person.CurrentBuildRatio).Replace(" ", "");
     _successfulBuildsInARow.Text = string.Format("{0}", person.CurrentSuccessInARow);
     _fixedSomeoneElsesBuild.Text = string.Format("{0}", person.NumberOfTimesFixedSomeoneElsesBuild);
     _totalBuilds.Text            = string.Format("{0}", person.TotalBuilds);
 }
Exemple #2
0
        protected override bool MeetsAchievementCriteria()
        {
            var myReputation       = PersonSetting.GetReputation();
            var everyoneElseOnTeam = _people.Where(i => i.RawName != PersonSetting.RawName).ToList();

            if (everyoneElseOnTeam.Count == 0)
            {
                return(false);
            }
            return(everyoneElseOnTeam.All(i => i.GetReputation() <= (myReputation - 100)));
        }
Exemple #3
0
 public InstanceUserDto(PersonSetting personSetting)
 {
     RawName      = personSetting.RawName;
     Reputation   = personSetting.GetReputation();
     DisplayName  = personSetting.DisplayName;
     Achievements = personSetting.Achievements.Select(i => new OfflineUserAchievementDto(i)).ToList();
     AvatarId     = personSetting.AvatarId;
     Hidden       = personSetting.Hidden;
     FailPercent  = (int)(personSetting.CurrentBuildRatio * 100);
     Csb          = personSetting.CurrentSuccessInARow;
     TotalBuilds  = personSetting.TotalBuilds;
     Fseb         = personSetting.NumberOfTimesFixedSomeoneElsesBuild;
 }
        protected override bool MeetsAchievementCriteria()
        {
            int      consecutiveFailedBuilds          = 0;
            DateTime?achievedThreeConsecurtiveFails   = null;
            int      buildsSinceThreeConsecutiveFails = 0;
            int      failedSinceThreeConsecutiveFails = 0;

            foreach (var buildStatus in _allActiveBuildDefinitionsOrderedChronoligically)
            {
                if (achievedThreeConsecurtiveFails.HasValue && buildStatus.RequestedBy == PersonSetting.RawName)
                {
                    buildsSinceThreeConsecutiveFails++;
                    if (buildStatus.BuildStatusEnum == BuildStatusEnum.Broken)
                    {
                        failedSinceThreeConsecutiveFails++;
                    }
                }

                if (buildStatus.RequestedBy == PersonSetting.RawName && buildStatus.BuildStatusEnum == BuildStatusEnum.Broken)
                {
                    consecutiveFailedBuilds++;
                    if (consecutiveFailedBuilds >= 3)
                    {
                        achievedThreeConsecurtiveFails = buildStatus.StartedTime ?? DateTime.Now;
                    }
                }
                else
                {
                    consecutiveFailedBuilds = 0;
                }
            }

            if (!achievedThreeConsecurtiveFails.HasValue)
            {
                return(false);
            }
            bool meetsAchievementCriteria = PersonSetting.GetReputation(buildsSinceThreeConsecutiveFails, failedSinceThreeConsecutiveFails) >= 12;

            if (!meetsAchievementCriteria)
            {
                _log.Debug(string.Format("{0} did not meet reputation rebound criteria. They achieved 3 consecutive failed builds on {1} and since then they have build {2} times, of those {3} were failures.", PersonSetting.RawName, achievedThreeConsecurtiveFails, buildsSinceThreeConsecutiveFails, failedSinceThreeConsecutiveFails));
            }
            return(meetsAchievementCriteria);
        }
Exemple #5
0
        private void SetUser(PersonSetting personSetting)
        {
            _userName.Text         = personSetting.GetBothDisplayAndRawNames();
            _reputation.Text       = personSetting.GetReputation().ToString(CultureInfo.InvariantCulture);
            _achievementCount.Text = personSetting.Achievements.Count.ToString(CultureInfo.InvariantCulture);
            _achievementsText.Text = personSetting.Achievements.Count == 1 ? "Achievement" : "Achievements";

            int achievementIndex = 0;

            foreach (var achievementLookup in AchievementSetting.AchievementLookups)
            {
                bool    hasUserAchieved = personSetting.Achievements.Any(i => i.AchievementId == (int)achievementLookup.Id);
                var     cloneFrom       = hasUserAchieved ? _obtainedTemplate : _unobtainedTemplate;
                Control control         = flowLayoutPanel1.Controls[achievementIndex];
                Debug.Assert(control != null);
                control.BackColor = cloneFrom.BackColor;
                control.ForeColor = cloneFrom.ForeColor;
                achievementIndex++;
            }
        }