protected override DriverResult Editor(ContentPart part, ImageMultiPickerField field, dynamic shapeHelper)
        {
            return(ContentShape("Fields_ImageMultiPicker_Edit", GetDifferentiator(field, part),
                                () =>
            {
                var viewModel = new ImageMultiPickerFieldEditorViewModel
                {
                    Field = field,
                    Data = IsDataInvalid(field.Data) ? "[]" : field.Data,
                    FieldFolderName = _mediaFileSystemService.GetContentItemUploadFolder(part.Id, field.Name),
                    Settings = field.PartFieldDefinition.Settings.GetModel <ImageMultiPickerFieldSettings>()
                };

                return shapeHelper.EditorTemplate(TemplateName: "Fields_ImageMultiPicker_Edit", Model: viewModel, Prefix: GetPrefix(field, part));
            }));
        }
        protected override DriverResult Editor(ContentPart part, ImageMultiPickerField field, IUpdateModel updater, dynamic shapeHelper)
        {
            var viewModel = new ImageMultiPickerFieldEditorViewModel();

            if (updater.TryUpdateModel(viewModel, GetPrefix(field, part), null, null))
            {
                field.Data = IsDataInvalid(viewModel.Data) ? "[]" : viewModel.Data;

                var images = field.Images;
                if (images != null && _settingsService.Settings.EnableContentItemFolderCleanup)
                {
                    var uploadFolder = _mediaFileSystemService.GetContentItemUploadFolder(part.Id, field.Name);
                    Task.Factory.StartNew(() => _mediaFileSystemService.DeleteNotUsedFiles(uploadFolder, images));
                }
            }
            return(Editor(part, field, shapeHelper));
        }