public async Task <IActionResult> EditProperties(WorkflowSnippetViewModel viewModel, string sourcename) { if (!await _authorizationService.AuthorizeAsync(User, OrchardCore.Workflows.Snippets.Permissions.ManageWorkflowSnippets)) { return(Forbid()); } if (!ModelState.IsValid) { return(View(viewModel)); } var isNew = string.IsNullOrEmpty(sourcename); var workflowSnippet = default(WorkflowSnippet); if (isNew) { if (String.IsNullOrWhiteSpace(viewModel.Name)) { ModelState.AddModelError(nameof(WorkflowSnippetViewModel.Name), S["The name is mandatory."]); } else { var shortcodeTemplatesDocument = await _workflowSnippetsManager.GetWorkflowSnippetsDocumentAsync(); if (shortcodeTemplatesDocument.WorkflowSnippets.ContainsKey(viewModel.Name)) { ModelState.AddModelError(nameof(WorkflowSnippetViewModel.Name), S["A snippet with the same name already exists."]); } } if (!ModelState.IsValid) { // If we got this far, something failed, redisplay form return(View(viewModel)); } workflowSnippet = new WorkflowSnippet { Description = viewModel.Description, IsEnabled = viewModel.IsEnabled, Categories = JsonConvert.DeserializeObject <string[]>(viewModel.SelectedCategories), }; await _workflowSnippetsManager.UpdateShortcodeTemplateAsync(viewModel.Name, workflowSnippet); } else { var shortcodeTemplatesDocument = await _workflowSnippetsManager.GetWorkflowSnippetsDocumentAsync(); if (!shortcodeTemplatesDocument.WorkflowSnippets.ContainsKey(sourcename)) { return(NotFound()); } workflowSnippet = shortcodeTemplatesDocument.WorkflowSnippets[sourcename]; workflowSnippet.Description = viewModel.Description?.Trim(); workflowSnippet.Categories = JsonConvert.DeserializeObject <string[]>(viewModel.SelectedCategories); workflowSnippet.IsEnabled = viewModel.IsEnabled; await _workflowSnippetsManager.RemoveWorkflowSnippetAsync(sourcename); await _workflowSnippetsManager.UpdateShortcodeTemplateAsync(viewModel.Name, workflowSnippet); } return(isNew ? RedirectToAction("Edit", new { sourcename = viewModel.Name }) : RedirectToAction("Index")); }
private async Task UpdateWorkFlowSnippet(string snippetname, WorkflowSnippet model) { await _workflowSnippetsManager.RemoveWorkflowSnippetAsync(snippetname); await _workflowSnippetsManager.UpdateShortcodeTemplateAsync(snippetname, model); }