コード例 #1
0
        public async Task <IActionResult> Edit(int id, string stepId)
        {
            if (!await _authorizationService.AuthorizeAsync(User, Permissions.ManageDeploymentPlan))
            {
                return(Forbid());
            }

            var deploymentPlan = await _session.GetAsync <DeploymentPlan>(id);

            if (deploymentPlan == null)
            {
                return(NotFound());
            }

            var step = deploymentPlan.DeploymentSteps.FirstOrDefault(x => String.Equals(x.Id, stepId, StringComparison.OrdinalIgnoreCase));

            if (step == null)
            {
                return(NotFound());
            }

            var model = new EditDeploymentPlanStepViewModel
            {
                DeploymentPlanId   = id,
                DeploymentStep     = step,
                DeploymentStepId   = step.Id,
                DeploymentStepType = step.GetType().Name,
                Editor             = await _displayManager.BuildEditorAsync(step, updater : _updateModelAccessor.ModelUpdater, isNew : false)
            };

            model.Editor.DeploymentStep = step;

            return(View(model));
        }
コード例 #2
0
        public async Task <IActionResult> Create(int id, string type)
        {
            if (!await _authorizationService.AuthorizeAsync(User, Permissions.ManageDeploymentPlan))
            {
                return(Unauthorized());
            }

            var deploymentPlan = await _session.GetAsync <DeploymentPlan>(id);

            if (deploymentPlan == null)
            {
                return(NotFound());
            }

            var step = _drivers.FirstOrDefault(x => x.Type.Name == type)?.Create();

            if (step == null)
            {
                return(NotFound());
            }

            step.Id = Guid.NewGuid().ToString("n");

            var model = new EditDeploymentPlanStepViewModel
            {
                DeploymentPlanId   = id,
                DeploymentStep     = step,
                DeploymentStepId   = step.Id,
                DeploymentStepType = type,
                Editor             = await _displayManager.BuildStepEditorAsync(step, this)
            };

            return(View(model));
        }
コード例 #3
0
        public async Task <IActionResult> Create(EditDeploymentPlanStepViewModel model)
        {
            if (!await _authorizationService.AuthorizeAsync(User, Permissions.ManageDeploymentPlan))
            {
                return(Forbid());
            }

            var deploymentPlan = await _session.GetAsync <DeploymentPlan>(model.DeploymentPlanId);

            if (deploymentPlan == null)
            {
                return(NotFound());
            }

            var step = _factories.FirstOrDefault(x => x.Name == model.DeploymentStepType)?.Create();

            if (step == null)
            {
                return(NotFound());
            }

            dynamic editor = await _displayManager.UpdateEditorAsync(step, updater : _updateModelAccessor.ModelUpdater, isNew : true);

            editor.DeploymentStep = step;

            if (ModelState.IsValid)
            {
                step.Id = model.DeploymentStepId;
                deploymentPlan.DeploymentSteps.Add(step);
                _session.Save(deploymentPlan);

                await _notifier.SuccessAsync(H["Deployment plan step added successfully."]);

                return(RedirectToAction("Display", "DeploymentPlan", new { id = model.DeploymentPlanId }));
            }

            model.Editor = editor;

            // If we got this far, something failed, redisplay form
            return(View(model));
        }
コード例 #4
0
        public async Task <IActionResult> Edit(EditDeploymentPlanStepViewModel model)
        {
            if (!await _authorizationService.AuthorizeAsync(User, Permissions.ManageDeploymentPlan))
            {
                return(Forbid());
            }

            var deploymentPlan = await _session.GetAsync <DeploymentPlan>(model.DeploymentPlanId);

            if (deploymentPlan == null)
            {
                return(NotFound());
            }

            var step = deploymentPlan.DeploymentSteps.FirstOrDefault(x => String.Equals(x.Id, model.DeploymentStepId, StringComparison.OrdinalIgnoreCase));

            if (step == null)
            {
                return(NotFound());
            }

            var editor = await _displayManager.UpdateEditorAsync(step, updater : _updateModelAccessor.ModelUpdater, isNew : false);

            if (ModelState.IsValid)
            {
                _session.Save(deploymentPlan);

                await _notifier.SuccessAsync(H["Deployment plan step updated successfully."]);

                return(RedirectToAction("Display", "DeploymentPlan", new { id = model.DeploymentPlanId }));
            }

            await _notifier.ErrorAsync(H["The deployment plan step has validation errors."]);

            model.Editor = editor;

            // If we got this far, something failed, redisplay form
            return(View(model));
        }
コード例 #5
0
        public async Task <IActionResult> Create(int id, string type)
        {
            if (!await _authorizationService.AuthorizeAsync(User, Permissions.ManageDeploymentPlan))
            {
                return(Forbid());
            }

            var deploymentPlan = await _session.GetAsync <DeploymentPlan>(id);

            if (deploymentPlan == null)
            {
                return(NotFound());
            }

            var step = _factories.FirstOrDefault(x => x.Name == type)?.Create();

            if (step == null)
            {
                return(NotFound());
            }

            step.Id = Guid.NewGuid().ToString("n");

            var model = new EditDeploymentPlanStepViewModel
            {
                DeploymentPlanId   = id,
                DeploymentStep     = step,
                DeploymentStepId   = step.Id,
                DeploymentStepType = type,
                Editor             = await _displayManager.BuildEditorAsync(step, updater : _updateModelAccessor.ModelUpdater, isNew : true)
            };

            model.Editor.DeploymentStep = step;

            return(View(model));
        }