public async Task <Leaderboard> GetLeaderboard(string projectId, string teamId, string iterationId)
        {
            var capacitiesTask    = _iterationsApi.GetCapacities(projectId, teamId, iterationId);
            var iterationTask     = _iterationsApi.Get(projectId, teamId, iterationId);
            var teamDaysOffTask   = _iterationsApi.GetTeamDaysOff(projectId, teamId, iterationId);
            var teamMembersTask   = _teamsApi.GetAllTeamMembers();
            var workIterationTask = _workIterationAppService.GetWorkIteration(projectId, teamId, iterationId);

            await Task.WhenAll(iterationTask, capacitiesTask, teamDaysOffTask, teamMembersTask, workIterationTask);

            var capaticies    = capacitiesTask.Result;
            var iteration     = iterationTask.Result;
            var teamDaysOff   = teamDaysOffTask.Result;
            var teamMembers   = teamMembersTask.Result;
            var workIteration = workIterationTask.Result;

            return(new Leaderboard(teamMembers, iteration, capaticies, teamDaysOff, workIteration));
        }
        //public double TotalEffort => this.Result.Items.Sum(x => x.TotalEffort);

        //public double TotalRemainingWork => this.Result.Items.Sum(x => x.TotalRemainingWork);

        public async Task Update(WorkIterationAppService workIterationAppService)
        {
            Result = await workIterationAppService.GetWorkIteration(ProjectId, TeamId, IterationId);

            AreaPaths = Result.Items.Select(x => x.AreaPath).Distinct().OrderBy(x => x).ToList();
        }