示例#1
0
        public async Task <dynamic> UpdatePartEditorAsync(ContentPartDefinition contentPartDefinition, IUpdateModel updater, string groupId)
        {
            if (contentPartDefinition == null)
            {
                throw new ArgumentNullException(nameof(contentPartDefinition));
            }

            var contentPartDefinitionShape = await CreateContentShapeAsync("ContentPartDefinition_Edit");

            UpdatePartEditorContext partContext = null;
            var layout = await _layoutAccessor.GetLayoutAsync();

            await _contentDefinitionManager.AlterPartDefinitionAsync(contentPartDefinition.Name, async partBuilder =>
            {
                partContext = new UpdatePartEditorContext(
                    partBuilder,
                    contentPartDefinitionShape,
                    groupId,
                    false,
                    _shapeFactory,
                    layout,
                    updater
                    );

                await BindPlacementAsync(partContext);

                await _handlers.InvokeAsync((handler, contentPartDefinition, partContext) => handler.UpdatePartEditorAsync(contentPartDefinition, partContext), contentPartDefinition, partContext, _logger);
            });

            return(contentPartDefinitionShape);
        }