public ScopeViewModel GetScopeViewModel(int projectVersionId, string tipYear)
 {
     var result = new ScopeViewModel();
     result.TipProjectScope = this.GetScopeModel(projectVersionId, tipYear);
     result.ProjectSummary = GetProjectSummary(projectVersionId);
     result.Segments = GetProjectSegments(projectVersionId);
     result.PoolProjects = GetPoolProjects(projectVersionId);
     return result;
 }
        public ActionResult UpdateScope(ScopeViewModel viewModel)
        {
            int projectVersionId = viewModel.TipProjectScope.ProjectVersionId;
            string year = viewModel.TipProjectScope.TipYear;
            //Get the model from the database
            ScopeModel model = _projectRepository.GetScopeModel(projectVersionId, year);
            //Update it
            model.BeginConstructionYear = viewModel.TipProjectScope.BeginConstructionYear;
            model.OpenToPublicYear = viewModel.TipProjectScope.OpenToPublicYear;
            model.ProjectDescription = viewModel.TipProjectScope.ProjectDescription;
            model.ProjectId = viewModel.TipProjectScope.ProjectId;
            model.ProjectVersionId = viewModel.TipProjectScope.ProjectVersionId;
            model.TipYear = viewModel.TipProjectScope.TipYear;

            if (!ModelState.IsValid)
            {
                return View("Scope", viewModel);
            }

            //Send update to repo
            try
            {
                _projectRepository.UpdateProjectScope(model);
            }
            catch (Exception ex)
            {
                //this.Logger.LogMethodError("ProjectController", "UpdateScope", "ScopeViewModel", ex);
                return Json(new { message = "Changes could not be stored. An error has been logged." });
            }
            return Json(new { message = "Changes successfully saved." });
        }