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); }
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))); }
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); }
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++; } }