protected override DriverResult Editor(ContentPart part, Fields.MediaLibraryPickerField field, IUpdateModel updater, dynamic shapeHelper) { var model = new MediaLibraryPickerFieldViewModel { SelectedIds = string.Join(",", field.Ids) }; updater.TryUpdateModel(model, GetPrefix(field, part), null, null); var settings = field.PartFieldDefinition.Settings.GetModel <MediaLibraryPickerFieldSettings>(); if (String.IsNullOrEmpty(model.SelectedIds)) { field.Ids = new int[0]; } else { field.Ids = model.SelectedIds.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries).Select(int.Parse).ToArray(); } if (settings.Required && field.Ids.Length == 0) { updater.AddModelError("Id", T("The field {0} is mandatory", T(field.DisplayName))); } return(Editor(part, field, shapeHelper)); }
protected override DriverResult Editor(ContentPart part, Fields.MediaLibraryPickerField field, dynamic shapeHelper) { return(ContentShape("Fields_MediaLibraryPicker_Edit", GetDifferentiator(field, part), () => { var model = new MediaLibraryPickerFieldViewModel { Field = field, Part = part, ContentItems = _contentManager.GetMany <ContentItem>(field.Ids, VersionOptions.Published, QueryHints.Empty).ToList(), }; model.SelectedIds = string.Concat(",", field.Ids); return shapeHelper.EditorTemplate(TemplateName: "Fields/MediaLibraryPicker.Edit", Model: model, Prefix: GetPrefix(field, part)); })); }