Пример #1
0
        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);
        }
Пример #2
0
 public TeamCapacity(
     IterationApiResponse iteration,
     IterationDaysOffApiResponse iterationDaysOff,
     TeamMemberListApiResponse teamMembers = null,
     IterationCapacityListApiResponse iterationCapacities = null)
     : this(iteration, iterationDaysOff?.DaysOff, teamMembers, iterationCapacities)
 {
 }
Пример #3
0
        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);
        }