/// <summary> /// Assigns the productivity graph filter. /// </summary> /// <param name="reportPresenter">The report presenter.</param> /// <returns>selected developers id list</returns> private static IList<int> AssignProductivityGraphFilter(ReportPresenter reportPresenter) { IList<int> developerIds = new List<int>(); IList<int> selectedDeveloperIds = reportPresenter.Developers.Select(item => item.ID).ToList(); IList<int> selectedDeveloperByRoleIds = new List<int>(); IList<int> selectedRoleIds = new List<int>(); foreach (var developers in reportPresenter.DevelopersByRoleList) { selectedDeveloperByRoleIds = selectedDeveloperByRoleIds.Concat(developers.DevelopersList.Select(item => item.ID).ToList()).ToList(); } foreach (var developers in reportPresenter.DevelopersByRoleDrilldownList) { selectedRoleIds = selectedRoleIds.Concat(developers.DevelopersList.Select(item => item.ID).ToList()).ToList(); } if (!string.IsNullOrEmpty(reportPresenter.SelectedDevelopersIds)) { developerIds = reportPresenter.SelectedDevelopersIds.Split(',').Select(id => Convert.ToInt32(id, CultureInfo.CurrentCulture)).ToList(); if (reportPresenter.ReportFilter.SelectedProductivityType == RoleId) { AssignProductivityGraphSelectedIds(reportPresenter, selectedDeveloperIds, developerIds, selectedRoleIds); } else if (reportPresenter.ReportFilter.SelectedProductivityType == RoleDrilldownId) { AssignProductivityGraphSelectedIds(reportPresenter, selectedDeveloperIds, selectedDeveloperByRoleIds, developerIds); } else { AssignProductivityGraphSelectedIds(reportPresenter, developerIds, selectedDeveloperByRoleIds, selectedRoleIds); } } else { developerIds = selectedDeveloperIds; AssignProductivityGraphSelectedIds(reportPresenter, selectedDeveloperIds, selectedDeveloperByRoleIds, selectedRoleIds); } return developerIds; }