public ActionResult Edit(int id, ElementDataViewModel model) { var blueprint = _elementBlueprintService.GetBlueprint(id); var describeContext = DescribeElementsContext.Empty; var descriptor = _elementManager.GetElementDescriptorByTypeName(describeContext, blueprint.BaseElementTypeName); var data = ElementDataHelper.Deserialize(model.ElementData).Combine(Request.Form.ToDictionary()); var element = _elementManager.ActivateElement(descriptor, e => e.Data = data); var context = CreateEditorContext(element, elementData: data); var editorResult = _elementManager.UpdateEditor(context); var viewModel = new EditElementBlueprintViewModel { EditorResult = editorResult, TypeName = model.TypeName, DisplayText = descriptor.DisplayText, Description = descriptor.Description, ElementData = element.Data.Serialize(), Tabs = editorResult.CollectTabs().ToArray(), BaseElement = element }; if (!ModelState.IsValid) { _transactionManager.Cancel(); return(View(viewModel)); } blueprint.BaseElementState = data.Serialize(); _signals.Trigger(Signals.ElementDescriptors); _notifier.Information(T("That blueprint has been saved.")); return(RedirectToAction("Index")); }
public ActionResult Edit(int id) { if (!Services.Authorizer.Authorize(Permissions.ManageLayouts, T("Not authorized to manage layouts."))) { return(new HttpUnauthorizedResult()); } var blueprint = _elementBlueprintService.GetBlueprint(id); var describeContext = DescribeElementsContext.Empty; var descriptor = _elementManager.GetElementDescriptorByTypeName(describeContext, blueprint.BaseElementTypeName); var data = ElementDataHelper.Deserialize(blueprint.BaseElementState); var element = _elementManager.ActivateElement(descriptor, e => e.Data = data); var context = CreateEditorContext(element, data); var editorResult = _elementManager.BuildEditor(context); var viewModel = new EditElementBlueprintViewModel { EditorResult = editorResult, TypeName = blueprint.BaseElementTypeName, DisplayText = descriptor.DisplayText, Description = descriptor.Description, ElementData = element.Data.Serialize(), Tabs = editorResult.CollectTabs().ToArray(), BaseElement = element }; return(View(viewModel)); }
public ViewResult Edit(int id) { var blueprint = _elementBlueprintService.GetBlueprint(id); var describeContext = DescribeElementsContext.Empty; var descriptor = _elementManager.GetElementDescriptorByTypeName(describeContext, blueprint.BaseElementTypeName); var data = ElementDataHelper.Deserialize(blueprint.BaseElementState); var element = _elementManager.ActivateElement(descriptor, e => e.Data = data); var context = CreateEditorContext(element, data); var editorResult = _elementManager.BuildEditor(context); var viewModel = new EditElementBlueprintViewModel { EditorResult = editorResult, TypeName = blueprint.BaseElementTypeName, DisplayText = descriptor.DisplayText, Description = descriptor.Description, ElementData = element.Data.Serialize(), Tabs = editorResult.CollectTabs().ToArray(), BaseElement = element }; return(View(viewModel)); }