public ActionResult CopyDmp(int id)
        {
            var project = ProjectRepository.Get(id);

            if (project == null)
            {
                return(View("ProjectNotFound"));
            }
            if (!this.CurrentUser.IsPrincipalInvestigatorFor(project))
            {
                return(View("NoProjectAccessRight"));
            }
            if (project.DataManagementPlan != null && project.ProvisioningStatus != ProvisioningStatus.NotStarted)
            {
                return(RedirectToAction("New", "Dmp", new { id }));
            }

            var availableProjects = GetAvailableProjects(id);

            if (availableProjects.Count != 0)
            {
                var copyViewModel = new CopyDataManagementPlanProjectViewModel
                {
                    DestinationProjectId = id,
                    AvailableProjects    = availableProjects
                };
                return(View(copyViewModel));
            }
            return(RedirectToAction("New", "Dmp", new { id }));
        }
        public ActionResult CopyDmp(CopyDataManagementPlanProjectViewModel model)
        {
            if (!ModelState.IsValid)
            {
                model.AvailableProjects = GetAvailableProjects(model.DestinationProjectId);
                return(View("CopyDmp", model));
            }

            var formParams = ControllerContext.HttpContext.Request.Form;
            var dmpList    = formParams["ProjectList"];
            var proceedBtn = formParams["saveAndProceed"];

            if (proceedBtn != null)
            {
                if (model.CopyFromExistingDmp != null && (bool)model.CopyFromExistingDmp)
                {
                    int sourceProjectId;
                    if (int.TryParse(dmpList, out sourceProjectId))
                    {
                        var sourceProject = ProjectRepository.Get(sourceProjectId);
                        var destProject   = ProjectRepository.Get(model.DestinationProjectId);
                        destProject.DataManagementPlan    = sourceProject.DataManagementPlan.Clone();
                        destProject.DataManagementPlan.Id = 0;
                        ProjectRepository.Save(destProject);
                        return(RedirectToAction("Edit", "Dmp",
                                                new { id = destProject.DataManagementPlan.Id, step = 1 }));
                    }
                }
                return(RedirectToAction("New", "Dmp", new { id = model.DestinationProjectId, step = 1 }));
            }
            return(RedirectToAction("Project", "Project", new { id = model.DestinationProjectId }));
        }