public static ContentSchemaField ToModel(this RestContentSchemaField definition) { Type optionsType = ContentFieldManager.Default.GetOptionsType(definition.FieldType); ContentFieldOptions options = (ContentFieldOptions)definition.Options.ToObject(optionsType, NewtonJsonExtensions.CreateSerializer()); ContentSchemaField schemaField = new ContentSchemaField(definition.FieldType, options); schemaField.Label = definition.Label; schemaField.SortKey = definition.SortKey; return(schemaField); }
public RenderFragment CreateOptionsComponent(ContentFieldOptions options) { if (options != null && _cacheFieldOptionsView.TryGetValue(options.GetType(), out Type viewType)) { return(builder => { builder.OpenComponent(0, viewType); builder.AddAttribute(0, nameof(IFieldOptionsComponent.Options), options); builder.CloseComponent(); }); } else { return(builder => { builder.OpenElement(0, "div"); builder.AddContent(0, "no options available"); builder.CloseElement(); }); } }
public RenderFragment CreateFieldComponent(ContentField contentField, ContentFieldOptions options) { if (_cacheFieldView.TryGetValue(contentField.GetType(), out Type viewType)) { return(builder => { builder.OpenComponent(0, viewType); builder.AddAttribute(0, nameof(IFieldComponent.Field), contentField); builder.AddAttribute(1, nameof(IFieldComponent.Options), options); builder.CloseComponent(); }); } else { return(builder => { builder.OpenElement(0, "p"); builder.AddContent(0, "no field available"); builder.CloseElement(); }); } }