示例#1
0
        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));
            }));
        }
示例#2
0
        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));
        }