public ActionResult Review(ConfirmDataManagementPlanViewModel model) { if (!ModelState.IsValid) { return(View(model)); } // Get project information var project = _projectRepository.GetByDataManagementPlanId(model.DataManagementPlanId); if (project == null || project.DataManagementPlan == null) { return(View("DmpNotFound")); } if (project.SourceProjectType == SourceProjectType.DEPOSIT) { return(View("IncorrectProjectType")); } if (!this.CurrentUser.IsPrincipalInvestigatorFor(project)) { return(View("NoProjectAccessRight")); } if (project.ProvisioningStatus == ProvisioningStatus.Provisioned) { return(View("DmpProvisioned")); } // TODO: You can use the URDMS.Integration solution to handle provisioning in a robust manner or just alter the database directly and implement // further actions from the web application. _bus.Send <SiteRequestCommand>(m => { m.ProjectId = project.Id; m.ProjectTitle = project.Title; m.ProjectDescription = project.Description; m.UserRoles = CreateUserRolesDictionary(project);; }); if (!project.DataCollections.Any(dc => dc.IsFirstCollection)) { var dataCollection = project.CreateInitialDataCollection(); _dataCollectionRepository.Save(dataCollection); } return(RedirectToAction("Submitted", new { id = project.DataManagementPlan.Id })); }
public ActionResult Review(int id) { var project = _projectRepository.GetByDataManagementPlanId(id); if (project == null || project.DataManagementPlan == null) { return(View("DmpNotFound")); } if (!this.CurrentUser.IsPrincipalInvestigatorFor(project)) { return(View("NoProjectAccessRight")); } if (project.ProvisioningStatus == ProvisioningStatus.Provisioned) { return(View("DmpProvisioned")); } var vm = new ConfirmDataManagementPlanViewModel { DataManagementPlanId = project.DataManagementPlan.Id, ProjectTitle = project.Title }; return(View("Review", vm)); }