예제 #1
0
        /// <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;
        }