/// <summary>
        /// The Details tab for a project
        /// </summary>
        /// <param name="guid"></param>
        /// <param name="year"></param>
        /// <returns></returns>
        public ActionResult Details(int id, string year)
        {
            var model = new DetailViewModel();
            model = _rtpProjectRepository.GetDetailViewModel(id, year);

            // set page parameters for javascript
            var pp = CreatePageParameters();
            pp.Add("RtpYear", model.ProjectSummary.RtpYear);
            pp.Add("ProjectVersionId", model.ProjectSummary.ProjectVersionId);
            SetPageParameters(pp);

            return View(model);
        }
        public DetailViewModel GetDetailViewModel(Int32 projectVersionId, String year)
        {
            //throw new NotImplementedException();

            var result = new DetailViewModel();
            result.StringValues = new Dictionary<string, string>();
            result.GeneralInfo = GetProjectGeneralInfo(projectVersionId);

            InfoViewModel InfoViewModel = GetProjectInfoViewModel(projectVersionId, year);
            SegmentViewModel SegmentViewModel = GetSegmentViewModel(projectVersionId);

            // get project summary info
            result.ProjectSummary = GetProjectSummary(projectVersionId, year);
            result.InfoModel = InfoViewModel.InfoModel;
            result.ProjectSponsorsModel = InfoViewModel.ProjectSponsorsModel;

            result.GroupingCategory = GetPlanReportGroupingCategoryDetails(result.ProjectSummary.CategoryId);

            //result.StringValues.Add("AdminLevel",GetValueByKey(AvailableAdminLevels, result.InfoModel.AdministrativeLevelId.Value));
            //result.StringValues.Add("ProjectType", GetValueByKey(AvailableProjectTypes, result.InfoModel.ProjectTypeId.Value));
            //result.StringValues.Add("ImprovementType", GetValueByKey(AvailableImprovementTypes, result.InfoModel.ImprovementTypeId.Value));
            //result.StringValues.Add("RoadOrTransit", GetValueByKey(AvailableRoadOrTransitTypes, result.InfoModel.TransportationTypeId.Value));
            //result.StringValues.Add("PoolName", GetValueByKey(AvailablePools(result.ProjectSummary), result.InfoModel.ProjectPoolId.Value));
            result.Segments = GetProjectSegments(projectVersionId);
            //result.PoolProjects = GetPoolProjects(projectVersionId);

            result.FundingSources = GetProjectFundingSources(projectVersionId);

            return result;
        }