コード例 #1
0
        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 }));
        }
コード例 #2
0
        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));
        }