public ActionResult Index(TeamEngagementPresenter presenter)
        {
            ModelState.Clear();
            this.AddBreadcrumbItem(Resources.Assignments, Url.AssignmentsAction());
            if (presenter == null)
            {
                return null;
            }

            presenter.AssignMasterProjects(this.lookupService.RetrieveProjects(null, null, false, false, SessionData.Instance.UserInfo.Developer.DeveloperID));
            presenter.AssignSupervisors(this.developerService.RetrieveManagers(null, false, SessionData.Instance.UserInfo.Developer.DeveloperID));
            AssignTeamEngagementFilterOptions(presenter);

            return this.View(presenter);
        }
        /// <summary>
        /// Assigns the team engagement filter options.
        /// </summary>
        /// <param name="presenter">The presenter.</param>
        private static void AssignTeamEngagementFilterOptions(TeamEngagementPresenter presenter)
        {
            if (!string.IsNullOrEmpty(presenter.SelectedSupervisorIds))
            {
                List<string> ids = presenter.SelectedSupervisorIds.Split(CommaSeparatorCharConst).ToList();
                presenter.AssignSelectedSupervisors(presenter.Supervisors.Where(supervisor => ids.Contains(supervisor.DeveloperID.ToString(CultureInfo.CurrentCulture))).ToList());
            }

            if (!string.IsNullOrEmpty(presenter.SelectedProjectIds))
            {
                List<string> ids = presenter.SelectedProjectIds.Split(CommaSeparatorCharConst).ToList();
                presenter.AssignSelectedProjects(presenter.MasterProjects.Where(project => ids.Contains(project.ProjectID.ToString(CultureInfo.CurrentCulture))).ToList());
            }
        }
        /// <summary>
        /// Function to retrieve index page.
        /// </summary>
        /// <param name="projectId">Project Id.</param>
        /// <param name="includeInactive">The include inactive.</param>
        /// <returns>
        /// Index page
        /// </returns>
        public ActionResult Index(string projectId, string includeInactive)
        {
            var developerList = this.developerService.RetrieveList(SessionData.Instance.UserInfo.Developer.DeveloperID, null, SessionData.Instance.UserInfo.Developer.DeveloperID);
            if (!SessionUserManager.IsUserHR() && developerList.Count == 0)
            {
                return this.Redirect(Url.TeamDashboardAction());
            }

            this.AddBreadcrumbItem(Resources.Assignments, Url.AssignmentsAction());
            TeamEngagementPresenter presenter = new TeamEngagementPresenter();

            presenter.IsSupervisor = true;
            if (Convert.ToBoolean(includeInactive, CultureInfo.CurrentCulture))
            {
                presenter.AssignMasterProjects(this.lookupService.RetrieveProjects(null, null, null, null, SessionData.Instance.UserInfo.Developer.DeveloperID));
            }
            else
            {
                presenter.AssignMasterProjects(this.lookupService.RetrieveProjects(null, null, false, null, SessionData.Instance.UserInfo.Developer.DeveloperID));
            }

            presenter.AssignSupervisors(this.developerService.RetrieveManagers(null, false, SessionData.Instance.UserInfo.Developer.DeveloperID));

            var defaultSupervisor = !SessionUserManager.IsUserHR() ? presenter.Supervisors.FirstOrDefault(s => s.DeveloperID == SessionData.Instance.UserInfo.Developer.DeveloperID) : null;
            if (defaultSupervisor != null)
            {
                presenter.SelectedSupervisors.Add(defaultSupervisor);
                presenter.SelectedSupervisorIds = SessionData.Instance.UserInfo.Developer.DeveloperID.ToString(CultureInfo.CurrentCulture);
            }

            if (string.IsNullOrWhiteSpace(projectId))
            {
                presenter.AssignSelectedProjects(presenter.MasterProjects);
                presenter.SelectedProjectIds = string.Join(",", presenter.SelectedProjects.Select(s => s.ProjectID).ToList());
            }
            else
            {
                presenter.AssignSelectedProjects(presenter.MasterProjects.Where(p => p.ProjectID == Convert.ToInt32(projectId, CultureInfo.CurrentCulture)).ToList());
                presenter.SelectedProjectIds = projectId;
            }

            presenter.FromDate = DateTimeHelper.RetrieveCurrentDate();

            return this.View(presenter);
        }