public async Task UpdateEditorAsync(UpdateEditorContext context) { await _drivers.InvokeAsync( driver => driver.UpdateEditorAsync(context, _modelUpdaterAccessor.ModelUpdater), Logger ); }
public Task UpdateEditorAsync(UpdateEditorContext context, IModelUpdater modelUpdater) { return _drivers.InvokeAsync(async driver => { var result = await driver.UpdateEditorAsync(context, modelUpdater); if (result != null) result.Apply(context); }, Logger); }
public override async Task UpdateEditorAsync(UpdateEditorContext context, IModelUpdater updater) { var testContentPart = context.Content.As<TestContentPartA>(); if (testContentPart == null) { return; } if(await updater.TryUpdateModelAsync(testContentPart, "")) { context.Content.ContentItem.Weld(testContentPart); } return; }
public override async Task<DisplayResult> UpdateEditorAsync(UpdateEditorContext context, IModelUpdater updater) { var testContentPart = context.Content.As<TestContentPartA>(); if (testContentPart == null) { return null; } if (await updater.TryUpdateModelAsync(testContentPart, "")) { if (testContentPart.Line.EndsWith(" ")) { updater.ModelState.AddModelError(nameof(testContentPart.Line), "Value cannot end with a space"); } else { context.Content.ContentItem.Weld(testContentPart); } } return Shape("TestContentPartA_Edit", testContentPart).Location("Content"); }
public async Task<dynamic> BuildEditorAsync(IContent content, string groupId) { if (content == null || content.ContentItem == null) { throw new ArgumentNullException(nameof(content)); } var contentTypeDefinition = _contentDefinitionManager.GetTypeDefinition(content.ContentItem.ContentType); JToken stereotype; if (!contentTypeDefinition.Settings.TryGetValue("Stereotype", out stereotype)) { stereotype = "Content"; } var actualShapeType = stereotype + "_Edit"; dynamic itemShape = CreateContentShape(actualShapeType); itemShape.ContentItem = content.ContentItem; // adding an alternate for [Stereotype]_Edit__[ContentType] e.g. Content-Menu.Edit ((IShape)itemShape).Metadata.Alternates.Add(actualShapeType + "__" + content.ContentItem.ContentType); var context = new UpdateEditorContext(itemShape, content, groupId, _shapeFactory); await BindPlacementAsync(context, null, stereotype.Value<string>()); await _handlers.InvokeAsync(handler => handler.BuildEditorAsync(context), Logger); return context.Shape; }