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);
        }
Beispiel #2
0
 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(); });
     }
 }
Beispiel #3
0
 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(); });
     }
 }