public async Task <IActionResult> Duplicate(WorkflowTypePropertiesViewModel viewModel, int id) { if (!await _authorizationService.AuthorizeAsync(User, Permissions.ManageWorkflows)) { return(Unauthorized()); } if (!ModelState.IsValid) { return(View(viewModel)); } var existingWorkflowType = await _session.GetAsync <WorkflowType>(id); var workflowType = new WorkflowType(); workflowType.WorkflowTypeId = _workflowTypeIdGenerator.GenerateUniqueId(workflowType); workflowType.Name = viewModel.Name?.Trim(); workflowType.IsEnabled = viewModel.IsEnabled; workflowType.IsSingleton = viewModel.IsSingleton; workflowType.DeleteFinishedWorkflows = viewModel.DeleteFinishedWorkflows; workflowType.Activities = existingWorkflowType.Activities; workflowType.Transitions = existingWorkflowType.Transitions; await _workflowTypeStore.SaveAsync(workflowType); return(RedirectToAction("Edit", new { workflowType.Id })); }
public async Task <IActionResult> EditProperties(WorkflowTypePropertiesViewModel viewModel, int?id) { if (!await _authorizationService.AuthorizeAsync(User, Permissions.ManageWorkflows)) { return(Forbid()); } if (!ModelState.IsValid) { return(View(viewModel)); } var isNew = id == null; var workflowType = default(WorkflowType); if (isNew) { workflowType = new WorkflowType(); workflowType.WorkflowTypeId = _workflowTypeIdGenerator.GenerateUniqueId(workflowType); } else { workflowType = await _session.GetAsync <WorkflowType>(id.Value); if (workflowType == null) { return(NotFound()); } } workflowType.Name = viewModel.Name?.Trim(); workflowType.IsEnabled = viewModel.IsEnabled; workflowType.IsSingleton = viewModel.IsSingleton; workflowType.LockTimeout = viewModel.LockTimeout; workflowType.LockExpiration = viewModel.LockExpiration; workflowType.DeleteFinishedWorkflows = viewModel.DeleteFinishedWorkflows; await _workflowTypeStore.SaveAsync(workflowType); return(isNew ? RedirectToAction(nameof(Edit), new { workflowType.Id }) : Url.IsLocalUrl(viewModel.ReturnUrl) ? (IActionResult)this.Redirect(viewModel.ReturnUrl, true) : RedirectToAction(nameof(Index))); }