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)); }
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)); }
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)); }
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)); }
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)); }