/// <summary>
        /// Indexes the specified from date.
        /// </summary>
        /// <returns>
        /// return dashboard
        /// </returns>
        public ActionResult Index()
        {
            var dashboardPresenter = new DashboardPresenter();

            dashboardPresenter.AssignDashboardProjectsHealth(this.projectService.RetrieveDashboardProjectsHealth(null, SessionData.Instance.UserInfo.Developer.DeveloperID));
            this.RetrieveReleaseScheduleDates(dashboardPresenter);

            dashboardPresenter.AssignStatusList(this.reportService.RetrieveProjectPercentCompleteList(SessionData.Instance.UserInfo.Developer.DeveloperID));
            dashboardPresenter.AssignPipelineResourceList(this.reportService.RetrievePipelineResourcesList(SessionData.Instance.UserInfo.Developer.DeveloperID));
            dashboardPresenter.AssignProjectEstimateAndActualHourList(this.reportService.RetrieveProjectEstimateAndActualHourList(SessionData.Instance.UserInfo.Developer.DeveloperID));
            dashboardPresenter.NextMonthEndDate = DateTimeHelper.RetrieveCurrentDateTime().RetrieveNextMonthEndDate();
            dashboardPresenter.NextMonthStartDate = DateTimeHelper.RetrieveCurrentDateTime().RetrieveNextMonthStartDate();
            dashboardPresenter.CurrentMonthEndDate = GetMonthLastDate();
            dashboardPresenter.AssignResourceAllocationList(this.reportService.RetrieveResourceAllocations(DateTimeHelper.RetrieveCurrentDate(), DateTimeHelper.RetrieveCurrentDate().AddDays(ApplicationSettings.Instance.DashboardAllocationGraphDayDuration), SessionData.Instance.UserInfo.Developer.DeveloperID));
            dashboardPresenter.AssignReleaseList(this.releaseService.RetrieveListForDate(DateTimeHelper.RetrieveCurrentDateTime(), null, null, SessionData.Instance.UserInfo.Developer.DeveloperID, false).ToList(), TodayReleaseTab);
            dashboardPresenter.CurrentDate = DateTimeHelper.RetrieveCurrentDate();
            dashboardPresenter.EndDate = GetMonthPreviousDate();
            dashboardPresenter.AssignClientHourAllocationList(this.reportService.RetrieveClientHourAllocations(dashboardPresenter.CurrentDate, dashboardPresenter.EndDate, SessionData.Instance.UserInfo.Developer.DeveloperID));
            dashboardPresenter.AssignProjectHourAllocationsList(this.reportService.RetrieveProjectHourAllocations(dashboardPresenter.CurrentDate, dashboardPresenter.EndDate, SessionData.Instance.UserInfo.Developer.DeveloperID));
            dashboardPresenter.AssignClientPipelineList(this.reportService.RetrieveDashboardClientPipelineInfo(SessionData.Instance.UserInfo.Developer.DeveloperID));
            dashboardPresenter.AssignProjectPipelineList(this.reportService.RetrieveDashboardProjectPipelineInfo(SessionData.Instance.UserInfo.Developer.DeveloperID));
            dashboardPresenter.AssignProjectComplianceStatusReportFuture(this.projectComplianceReportService.RetrieveComplianceStatusReport(null, null, false, SessionData.Instance.UserInfo.Developer.DeveloperID));
            dashboardPresenter.AssignProjectComplianceStatusReportPast(this.projectComplianceReportService.RetrieveComplianceStatusReport(null, null, true, SessionData.Instance.UserInfo.Developer.DeveloperID));          
            return this.View(dashboardPresenter);
        }
        /// <summary>
        /// Releases the schedule.
        /// </summary>
        /// <param name="tabId">The tab identifier.</param>
        /// <param name="releaseType">Type of the release.</param>
        /// <returns>
        /// return release schedule
        /// </returns>
        public ActionResult ReleaseSchedule(string tabId, string releaseType)
        {
            var dashboardPresenter = new DashboardPresenter();
            dashboardPresenter.SelectedReleaseType = releaseType;
            var releaseScheduleDates = this.RetrieveReleaseScheduleDates(dashboardPresenter);
            var releaseTypeId = string.IsNullOrEmpty(releaseType) ? null : new List<byte>() { (byte)Enum.Parse(typeof(ReleaseType), releaseType) };
            if (tabId == TodayReleaseTab)
            {
                dashboardPresenter.AssignReleaseList(this.releaseService.RetrieveListForDate(DateTimeHelper.RetrieveCurrentDateTime(), releaseTypeId, null, SessionData.Instance.UserInfo.Developer.DeveloperID, false), tabId);
            }
            else
            {
                dashboardPresenter.AssignReleaseList(this.releaseService.RetrieveList(releaseTypeId, null, releaseScheduleDates.Item1, releaseScheduleDates.Item2, SessionData.Instance.UserInfo.Developer.DeveloperID), null);
            }

            dashboardPresenter.SelectedReleaseTab = tabId;

            return this.View(ReleaseSchedulePartialView, dashboardPresenter);
        }