public async Task<ActionResult> CreatePartPOST(CreatePartViewModel viewModel) { if (!await _authorizationService.AuthorizeAsync(User, Permissions.EditContentTypes)) return Unauthorized(); if (_contentDefinitionManager.GetPartDefinition(viewModel.Name) != null) ModelState.AddModelError("Name", S["Cannot add part named '{0}'. It already exists.", viewModel.Name]); if (!ModelState.IsValid) return View(viewModel); var partViewModel = _contentDefinitionService.AddPart(viewModel); if (partViewModel == null) { _notifier.Information(T["The content part could not be created."]); return View(viewModel); } _notifier.Success(T["The \"{0}\" content part has been created.", partViewModel.Name]); return RedirectToAction("EditPart", new { id = partViewModel.Name }); }
public EditPartViewModel AddPart(CreatePartViewModel partViewModel) { var name = partViewModel.Name; if (_contentDefinitionManager.GetPartDefinition(name) != null) throw new OrchardException(T("Cannot add part named '{0}'. It already exists.", name)); if (!String.IsNullOrEmpty(name)) { _contentDefinitionManager.AlterPartDefinition(name, builder => builder.Attachable()); var partDefinition = _contentDefinitionManager.GetPartDefinition(name); _eventBus.Notify<IContentDefinitionEventHandler>(x => x.ContentPartCreated(new ContentPartCreatedContext { ContentPartDefinition = partDefinition })); return new EditPartViewModel(partDefinition); } return null; }