protected override DriverResult Editor(ContentPart part, Fields.BlogPostPickerField field, dynamic shapeHelper) { return(ContentShape("Fields_BlogPostPicker_Edit", GetDifferentiator(field, part), () => { var model = new BlogPostPickerFieldViewModel { Field = field, ContentItems = _contentManager.GetMany <ContentItem>(field.Ids, VersionOptions.Published, QueryHints.Empty).ToList(), }; model.SelectedIds = string.Concat(",", field.Ids); return shapeHelper.EditorTemplate(TemplateName: "Fields/BlogPostPicker.Edit", Model: model, Prefix: GetPrefix(field, part)); })); }
protected override DriverResult Editor(ContentPart part, Fields.BlogPostPickerField field, IUpdateModel updater, dynamic shapeHelper) { var model = new BlogPostPickerFieldViewModel(); updater.TryUpdateModel(model, GetPrefix(field, part), null, null); var settings = field.PartFieldDefinition.Settings.GetModel <BlogPostPickerFieldSettings>(); 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", field.Name.CamelFriendly())); } return(Editor(part, field, shapeHelper)); }