public TeamMetaIteration( IterationApiResponseBase iteration, IterationCapacityListApiResponse capacities, IterationDaysOffApiResponse teamDaysOff) { if (iteration == null) { throw new ArgumentNullException(nameof(iteration)); } if (capacities == null) { throw new ArgumentNullException(nameof(capacities)); } if (teamDaysOff == null) { throw new ArgumentNullException(nameof(teamDaysOff)); } Id = iteration.Id; Name = iteration.Name; StartDate = iteration.Attributes?.StartDate; FinishDate = iteration.Attributes?.FinishDate; Url = iteration.Url; var capacityList = capacities.Value.Select(x => new Capacity(x)).ToList(); var teamDaysOffList = teamDaysOff.DaysOff.Select(x => new DayOff(x)).ToList(); Capacities = new ReadOnlyCollection <Capacity>(capacityList); TeamDaysOff = new ReadOnlyCollection <DayOff>(teamDaysOffList); }
public TeamCapacity( IterationApiResponse iteration, IterationDaysOffApiResponse iterationDaysOff, TeamMemberListApiResponse teamMembers = null, IterationCapacityListApiResponse iterationCapacities = null) : this(iteration, iterationDaysOff?.DaysOff, teamMembers, iterationCapacities) { }
public Leaderboard( TeamMemberListApiResponse teamMembers, IterationApiResponse iteration, IterationCapacityListApiResponse capacities, IterationDaysOffApiResponse teamDaysOff, Iteration workIteration) { if (teamMembers == null) { throw new ArgumentNullException(nameof(teamMembers)); } if (iteration == null) { throw new ArgumentNullException(nameof(iteration)); } if (capacities == null) { throw new ArgumentNullException(nameof(capacities)); } if (teamDaysOff == null) { throw new ArgumentNullException(nameof(teamDaysOff)); } if (workIteration == null) { throw new ArgumentNullException(nameof(workIteration)); } IterationName = iteration.Name; var teamMemberList = teamMembers.Value.ToList(); var teamCapacity = new TeamCapacity(iteration, teamDaysOff, teamMembers, capacities); var workItems = GetWorkItems(workIteration); var scores = LeaderboardScoresHelper.GetScores(iteration, workItems, teamMemberList); var leaderboardTeamMembers = GetPlayers(teamMemberList, teamCapacity, scores); Players = new ReadOnlyCollection <Player>(leaderboardTeamMembers); TeamCapacity = teamCapacity; UnassignedScore = scores.Where(x => x.Key == Guid.Empty).Select(x => x.Value).FirstOrDefault(); TotalScoreAssistsSum = Players.Sum(x => x.ScoreAssistsSum); TotalScoreGoalsSum = Players.Sum(x => x.ScoreGoalsSum); TotalScorePointsSum = Players.Sum(x => x.ScorePointsSum); TotalHoursTotalCount = Players.Sum(x => x.Capacity.HoursTotalCount); TotalWorkDayCount = Players.Sum(x => x.Capacity.TotalWorkDayCount); }