public async Task <IActionResult> TeamDoneEfforts( string projectId = null, string teamId = null, string iterationId = null) { var idParams = await GetEnsuredIdParams(projectId, teamId, iterationId); var efforts = await _workIterationAppService.GetWorkIterationDoneEffortsPerDay( idParams.ProjectId, idParams.TeamId, idParams.IterationId); var jsonData = efforts.Select(x => new object[] { x.Key, x.Value }).ToList(); return(Json(jsonData)); }
private async Task <Activity> GetActivityInternal(string projectId, string teamId, string iterationId) { var iteration = await _iterationsApi.Get(projectId, teamId, iterationId); var fromDate = iteration?.Attributes?.StartDate ?? DateTime.Now; var toDate = iteration?.Attributes?.FinishDate ?? fromDate.AddDays(DefaultActivityDays); var capacitiesTask = _iterationsApi.GetCapacities(projectId, teamId, iterationId); var repositoriesTask = _gitApi.GetRepositoryList(projectId); var teamDaysOffTask = _iterationsApi.GetTeamDaysOff(projectId, teamId, iterationId); var teamMembersTask = _teamsApi.GetAllTeamMembers(); var effortDoneTask = _workIterationAppService.GetWorkIterationDoneEffortsPerDay(projectId, teamId, iterationId); await Task.WhenAll(capacitiesTask, repositoriesTask, teamDaysOffTask, teamMembersTask, effortDoneTask); var capacities = capacitiesTask.Result; var repositories = repositoriesTask.Result; var teamDaysOff = teamDaysOffTask.Result; var teamMembers = teamMembersTask.Result; var effortDones = effortDoneTask.Result; var commitInfoTasks = repositories .Value .Select(async x => await GetCommitInfo(x.Id, repositories.Value, teamMembers.Value, fromDate, toDate)) .ToList(); await Task.WhenAll(commitInfoTasks); var commitInfo = commitInfoTasks.SelectMany(x => x.Result).ToList(); var teamCapacity = new TeamCapacity(iteration, teamDaysOff, teamMembers, capacities); return(new Activity(commitInfo, fromDate, toDate, teamCapacity, effortDones, iteration)); }