/// <summary> /// Assigns the reports filters. /// </summary> /// <param name="reportPresenter">The report presenter.</param> private void AssignReportsFilters(ReportPresenter reportPresenter) { /*need for 1. Role Allocation Report=> RoleAlloactionDrillDown*/ if (reportPresenter.SelectedMenuItem.Equals(ReportOption.RoleAllocation.ToString()) || reportPresenter.SelectedMenuItem.Equals(ReportOption.RoleAllocationDrillDown.ToString())) { reportPresenter.AssignRoleGroupsForAllocation(this.lookupService.RetrieveRoleGroups(SessionData.Instance.UserInfo.Developer.DeveloperID)); } /*need for. Active Projects List*/ if (reportPresenter.SelectedMenuItem.Equals(ReportOption.ActiveProjects.ToString()) || reportPresenter.SelectedMenuItem.Equals(ReportOption.ReleaseReport.ToString())) { reportPresenter.AssignClientForDailyReport(this.lookupService.RetrieveClients(null, false, SessionData.Instance.UserInfo.Developer.DeveloperID)); } /*need for: Release report*/ if (reportPresenter.SelectedMenuItem.Equals(ReportOption.ReleaseReport.ToString())) { reportPresenter.AssignReleaseStatusList(this.lookupService.RetrieveReleaseCalendarStatusList(default(byte?), SessionData.Instance.UserInfo.Developer.DeveloperID)); if (string.IsNullOrEmpty(reportPresenter.SelectedStatusIds)) { var ids = reportPresenter.ReleaseStatusList.Select(a => a.ID).ToList(); if (ids.Count > 0) { foreach (var id in ids) { reportPresenter.SelectedStatusIds = reportPresenter.SelectedStatusIds + id + ","; } reportPresenter.SelectedStatusIds = reportPresenter.SelectedStatusIds.TrimEnd(','); } reportPresenter.AssignSelectedStatusList(ids); } } /*RoleAlloactionDrillDown>RoleProjectAlloaction, 3. ProjectTeamMemberAllocation,ProjectTeamMemberAllocationReport */ if (reportPresenter.SelectedMenuItem.Equals(ReportOption.RoleProjectAllocation.ToString()) || reportPresenter.SelectedMenuItem.Equals(ReportOption.ProjectTeamMemberAllocation.ToString()) || reportPresenter.SelectedMenuItem.Equals(ReportOption.ProjectTeamMemberAllocationReport.ToString())) { if (reportPresenter.SelectedMenuItem.Equals(ReportOption.ProjectTeamMemberAllocation.ToString()) || reportPresenter.SelectedMenuItem.Equals(ReportOption.ProjectTeamMemberAllocationReport.ToString())) { reportPresenter.AssignMultiSelectRoleGroups(this.lookupService.RetrieveRoleGroups(SessionData.Instance.UserInfo.Developer.DeveloperID)); AssignSelectedRoleGroups(reportPresenter); } else { reportPresenter.AssignRoleGroups(this.lookupService.RetrieveRoleGroups(SessionData.Instance.UserInfo.Developer.DeveloperID)); } } /* 3.ComplianceSummaryGraph, ProjectHoursAnalysisDrillDown, projectHourAlloactionDrillDown, RoleWiseAlloaction, ProjectHourAnaluysis, estimated Vs consumed hours(ProjectWeeklyHourConsumption), WeeklyProjectHourBurndown, ProjectHourBreakdown, ProductivityGraph*/ if (reportPresenter.SelectedMenuItem.Equals(ReportOption.ComplianceSummaryGraph.ToString()) || reportPresenter.SelectedMenuItem.Equals(ReportOption.ProjectHoursAnalysisDrillDown.ToString()) || reportPresenter.SelectedMenuItem.Equals(ReportOption.ProjectHoursAllocationDrillDown.ToString()) || reportPresenter.SelectedMenuItem.Equals(ReportOption.RoleWiseAllocation.ToString()) || reportPresenter.SelectedMenuItem.Equals(ReportOption.ProjectHoursAnalysis.ToString()) || reportPresenter.SelectedMenuItem.Equals(ReportOption.ProjectWeeklyHourConsumption.ToString()) || reportPresenter.SelectedMenuItem.Equals(ReportOption.WeeklyProjectHourBurndown.ToString()) || reportPresenter.SelectedMenuItem.Equals(ReportOption.ProjectHourBreakdown.ToString()) || reportPresenter.SelectedMenuItem.Equals(ReportOption.ProductivityGraph.ToString()) || reportPresenter.SelectedMenuItem.Equals(ReportOption.ProductivityGraph.ToString())) { reportPresenter.AssignParentProjects(this.lookupService.RetrieveProjects(null, null, false, null, SessionData.Instance.UserInfo.Developer.DeveloperID)); } /* 3. GameChangersWeeklyStatus,DailyReport,ProjectTeamMemberAllocation,NonComplianceDrillDown */ if (reportPresenter.SelectedMenuItem.Equals(ReportOption.NonComplianceDrillDown.ToString()) || reportPresenter.SelectedMenuItem.Equals(ReportOption.ProjectTeamMemberAllocation.ToString()) || reportPresenter.SelectedMenuItem.Equals(ReportOption.ProjectTeamMemberAllocationReport.ToString()) || reportPresenter.SelectedMenuItem.Equals(ReportOption.GameChangersWeeklyStatus.ToString()) || reportPresenter.SelectedMenuItem.Equals(ReportOption.DailyReport.ToString()) || reportPresenter.SelectedMenuItem.Equals(ReportOption.ActivityReport.ToString()) || reportPresenter.SelectedMenuItem.Equals(ReportOption.TaskReport.ToString()) || reportPresenter.SelectedMenuItem.Equals(ReportOption.TaskProjectReport.ToString()) || reportPresenter.SelectedMenuItem.Equals(ReportOption.ReleaseReport.ToString())) { reportPresenter.AssignProjectsForDailyReport(this.lookupService.RetrieveProjects(null, null, false, null, SessionData.Instance.UserInfo.Developer.DeveloperID)); } /* 3. ProjectTeamMemberAllocation,ProjectTeamMemberAllocationReport */ if (reportPresenter.SelectedMenuItem.Equals(ReportOption.ProjectTeamMemberAllocation.ToString()) || reportPresenter.SelectedMenuItem.Equals(ReportOption.ActivityReport.ToString()) || reportPresenter.SelectedMenuItem.Equals(ReportOption.ProjectTeamMemberAllocationReport.ToString())) { reportPresenter.AssignSupervisors(this.developerService.RetrieveManagers(null, false, SessionData.Instance.UserInfo.Developer.DeveloperID)); if (string.IsNullOrEmpty(reportPresenter.SelectedSupervisorIds)) { reportPresenter.Supervisors.ForEach(s => reportPresenter.SelectedSupervisors.Add(s.DeveloperID)); reportPresenter.SelectedSupervisorIds = string.Join(",", reportPresenter.SelectedSupervisors.Select(s => s.ToString(CultureInfo.InvariantCulture)).ToList()); } AssignSelectedProjectIds(reportPresenter); AssignSelectedSupervisors(reportPresenter); } /* 3. ProductivityGraph, DailyReport, employee leave record(special leave)*/ if (reportPresenter.SelectedMenuItem.Equals(ReportOption.Feedback.ToString()) || reportPresenter.SelectedMenuItem.Equals(ReportOption.ProductivityGraph.ToString()) || reportPresenter.SelectedMenuItem.Equals(ReportOption.DailyReport.ToString()) || reportPresenter.SelectedMenuItem.Equals(ReportOption.SalarySheet.ToString()) || reportPresenter.SelectedMenuItem.Equals(ReportOption.SpecialLeave.ToString()) || reportPresenter.SelectedMenuItem.Equals(ReportOption.TaskReport.ToString()) || reportPresenter.SelectedMenuItem.Equals(ReportOption.TaskProjectReport.ToString())) { var developers = this.lookupService.RetrieveDevelopers(null, null, SessionData.Instance.UserInfo.Developer.DeveloperID); if (reportPresenter.SelectedMenuItem.Equals(ReportOption.TaskReport.ToString()) || reportPresenter.SelectedMenuItem.Equals(ReportOption.TaskProjectReport.ToString())) { developers.Insert(0, new LookupItem() { ID = Zero, Name = All }); } else if (reportPresenter.SelectedMenuItem.Equals(ReportOption.DailyReport.ToString()) && SessionData.Instance.UserInfo != null && !(SessionUserManager.IsUserHR() || SessionUserManager.IsUserManagement() || SessionData.Instance.UserInfo.Developer.RoleGroupID == ProjectManager)) { var managerList = new List<int> { SessionData.Instance.UserInfo.Developer.DeveloperID }; var teamDevelopers = this.teamEngagementService.RetrieveDeveloperList(managerList, null, null, null, SessionData.Instance.UserInfo.Developer.DeveloperID); reportPresenter.AssignTeamDevelopers(teamDevelopers); developers = reportPresenter.TeamMembersList; } if (SessionUserManager.IsUserManagement() || SessionData.Instance.UserInfo.Developer.RoleGroupID == ProjectManager) { reportPresenter.AssignSupervisors(this.developerService.RetrieveManagers(null, false, SessionData.Instance.UserInfo.Developer.DeveloperID)); if (!string.IsNullOrEmpty(reportPresenter.SelectedSupervisorIds)) { var supervisorList = reportPresenter.SelectedSupervisorIds.Split(',').ToList(); reportPresenter.Supervisors.Where(s => supervisorList.Contains(s.DeveloperID.ToString())).ToList().ForEach(s => reportPresenter.SelectedSupervisors.Add(s.DeveloperID)); } } reportPresenter.AssignDevelopers(developers); } /* Team member reporting */ if (reportPresenter.SelectedMenuItem.Equals(ReportOption.TeamMemberReporting.ToString())) { var developers = this.lookupService.RetrieveDevelopers(null, false, SessionData.Instance.UserInfo.Developer.DeveloperID); developers.Insert(0, new LookupItem() { ID = Zero, Name = Select }); reportPresenter.AssignDevelopers(developers); } /* DailyReport */ if (reportPresenter.SelectedMenuItem.Equals(ReportOption.DailyReport.ToString())) { reportPresenter.AssignClientForDailyReport(this.lookupService.RetrieveClients(null, false, SessionData.Instance.UserInfo.Developer.DeveloperID)); reportPresenter.AssignWorkCategories(this.lookupService.RetrieveWorkCategories(null, false, SessionData.Instance.UserInfo.Developer.DeveloperID)); } /* Feedback */ if (reportPresenter.SelectedMenuItem.Equals(ReportOption.Feedback.ToString())) { reportPresenter.AssignFeedbackStatus(this.lookupService.RetrieveFeedbackStatusList(SessionData.Instance.UserInfo.Developer.DeveloperID)); } /* special leave */ if (reportPresenter.SelectedMenuItem.Equals(ReportOption.SpecialLeave.ToString())) { reportPresenter.AssignLeaveTypes(this.lookupService.RetrieveLeaveTypes(SessionData.Instance.UserInfo.Developer.DeveloperID).ToList()); } /* ComplianceSummaryGraph */ if (reportPresenter.SelectedMenuItem.Equals(ReportOption.ComplianceSummaryGraph.ToString())) { reportPresenter.AssignFunctionalAreaList(this.lookupService.RetrieveFunctionalAreaList()); AssignSelectedFunctionalAreas(reportPresenter); reportPresenter.AssignReleaseList(null); } /* ComplianceSummaryGraph */ if (reportPresenter.SelectedMenuItem.Equals(ReportOption.NonComplianceDrillDown.ToString()) || reportPresenter.SelectedMenuItem.Equals(ReportOption.ReleaseReport.ToString())) { reportPresenter.AssignReleaseTypes(this.lookupService.RetrieveReleaseTypes(SessionData.Instance.UserInfo.Developer.DeveloperID)); } /* swipeInOut,SalarySheet, yearly leave roster, feedback, NameYearlyLeaveRoster, TaskReport */ if (reportPresenter.SelectedMenuItem.Equals(ReportOption.SwipeInOut.ToString()) || reportPresenter.SelectedMenuItem.Equals(ReportOption.NameYearlyLeaveRoster.ToString()) || reportPresenter.SelectedMenuItem.Equals(ReportOption.NameLeaveRoaster.ToString())) { reportPresenter.AssignTeamDevelopers(this.developerService.RetrieveList(null, null, SessionData.Instance.UserInfo.Developer.DeveloperID)); } if (reportPresenter.SelectedMenuItem.Equals(ReportOption.TaskReport.ToString()) || reportPresenter.SelectedMenuItem.Equals(ReportOption.TaskProjectReport.ToString())) { var managerList = new List<int> { SessionData.Instance.UserInfo.Developer.DeveloperID }; reportPresenter.AssignTeamDevelopers(this.teamEngagementService.RetrieveDeveloperList(managerList, null, null, null, SessionData.Instance.UserInfo.Developer.DeveloperID)); } if (reportPresenter.SelectedMenuItem.Equals(ReportOption.ProductivityGraph.ToString()) || reportPresenter.SelectedMenuItem.Equals(ReportOption.ProjectTeamMemberAllocation.ToString()) || reportPresenter.SelectedMenuItem.Equals(ReportOption.ProjectTeamMemberAllocationReport.ToString())) { reportPresenter.AssignDevelopersByRoleList(this.developerService.RetrieveList(null, null, SessionData.Instance.UserInfo.Developer.DeveloperID)); reportPresenter.AssignDeveloperByRoleGroups(this.lookupService.RetrieveRoleGroups(SessionData.Instance.UserInfo.Developer.DeveloperID)); reportPresenter.AssignFilterType(); AssignProductivityGraphFilter(reportPresenter); } if (reportPresenter.SelectedMenuItem.Equals(ReportOption.TaskReport.ToString()) || reportPresenter.SelectedMenuItem.Equals(ReportOption.TaskProjectReport.ToString())) { var taskPriorityList = this.lookupService.RetrieveTaskPriorityList(SessionData.Instance.UserInfo.Developer.DeveloperID); taskPriorityList.Insert(0, new LookupItem() { ID = 0, Name = All }); reportPresenter.AssignPriorityList(taskPriorityList); var taskStatusFilter = this.lookupService.RetrieveTaskStatusFilterList(SessionData.Instance.UserInfo.Developer.DeveloperID); taskStatusFilter.Remove(taskStatusFilter.FirstOrDefault(s => s.Name == All)); reportPresenter.AssignTaskStatusFilter(taskStatusFilter); } /* Role or Monthly Productivity */ if (reportPresenter.SelectedMenuItem.Equals(ReportOption.MonthlyProductivity.ToString()) || reportPresenter.SelectedMenuItem.Equals(ReportOption.TeamMemberProductivityHour.ToString()) || reportPresenter.SelectedMenuItem.Equals(ReportOption.RoleProductivityDrilldown.ToString())) { reportPresenter.AssignRoleGroups(this.lookupService.RetrieveRoleGroups(SessionData.Instance.UserInfo.Developer.DeveloperID)); } /* Team member productivity */ if (reportPresenter.SelectedMenuItem.Equals(ReportOption.TeamMemberProductivityHour.ToString())) { reportPresenter.AssignRoleTypes(this.lookupService.RetrieveRoleTypesList(SessionData.Instance.UserInfo.Developer.DeveloperID)); } if (reportPresenter.SelectedMenuItem.Equals(ReportOption.ProjectHourConsumptionTrend.ToString())) { reportPresenter.AssignRoleGroups(this.lookupService.RetrieveRoleGroups(SessionData.Instance.UserInfo.Developer.DeveloperID)); if (reportPresenter.ReportFilter.SelectedRoleGroup.Equals(0)) { var roleGroup = reportPresenter.RoleGroupList.OrderBy(role => role.RoleGroup); reportPresenter.ReportFilter.SelectedRoleGroup = Convert.ToInt32(roleGroup.FirstOrDefault().RoleGroupID); } reportPresenter.AssignRoleTypes(this.lookupService.RetrieveRoleTypesList(SessionData.Instance.UserInfo.Developer.DeveloperID)); reportPresenter.AssignSupervisors(this.developerService.RetrieveManagers(null, false, SessionData.Instance.UserInfo.Developer.DeveloperID)); if (reportPresenter.ReportFilter.SelectedSupervisor.Equals(0)) { var supervisorId = reportPresenter.Supervisors.FirstOrDefault(a => a.DeveloperID.Equals(SessionData.Instance.UserInfo.Developer.DeveloperID)); if (supervisorId != null) { reportPresenter.ReportFilter.SelectedSupervisor = supervisorId.DeveloperID; } else { var teamMemberReportingData = this.developerService.RetrieveByDeveloperId(SessionData.Instance.UserInfo.Developer.DeveloperID, SessionData.Instance.UserInfo.Developer.DeveloperID); reportPresenter.ReportFilter.SelectedSupervisor = Convert.ToInt32(teamMemberReportingData.ManagerID, CultureInfo.CurrentCulture); } } } }