Esempio n. 1
0
 public override void OnApplyingFallbackDefaults(EntityDefinition entity, EntityFieldDefinition field)
 {
     if (string.IsNullOrWhiteSpace(field.DisplayName))
     {
         field.DisplayName = field.Property.Name.FormatForDisplay();
     }
 }
    public override async Task <IViewComponentResult> InvokeAsync(EntityFieldDefinition fieldDefinition, object value)
    {
        var metadata = fieldDefinition.Using <CrudAdminEntityFieldFeature>();

        if (!metadata.EditorProperties.TryGetValue("DataSource", out var dataSourceDefinition))
        {
            throw new ArgumentNullException("DataSource");
        }

        var dataSource = dataSourceFactory.Create(dataSourceDefinition);
        var data       = await dataSourceReader.ReadFrom(dataSource);

        return(View(new DropDownFieldEditorViewModel
        {
            Id = fieldDefinition.Property.Name,
            FieldName = fieldDefinition.Property.Name,
            Label = fieldDefinition.DisplayName,
            Value = value?.ToString() ?? string.Empty,
            Options = data.Select(x => new DropDownOptionViewModel
            {
                Value = x.Key,
                Label = x.Value,
            }),
        }));
    }
    public override async Task <IViewComponentResult> InvokeAsync(EntityFieldDefinition fieldDefinition, object value)
    {
        if (value is not IEnumerable <string> typedValue)
        {
            throw new ArgumentException($"ViewComponent parameter ${value} must be of type {nameof(IEnumerable<string>)}", nameof(value));
        }

        var metadata = fieldDefinition.Using <CrudAdminEntityFieldFeature>();

        if (!metadata.EditorProperties.TryGetValue("DataSource", out var dataSourceDefinition))
        {
            throw new ArgumentNullException("DataSource");
        }

        var dataSource = dataSourceFactory.Create(dataSourceDefinition);
        var data       = await dataSourceReader.ReadFrom(dataSource);

        return(View(new MultiSelectFieldEditorViewModel
        {
            Id = fieldDefinition.Property.Name,
            FieldName = fieldDefinition.Property.Name,
            Label = fieldDefinition.DisplayName,
            Value = typedValue,
            Options = data.Select(x => new DropDownOptionViewModel
            {
                Value = x.Key,
                Label = x.Value,
            }),
        }));
    }
Esempio n. 4
0
    public override void OnApplyingModule(EntityDefinition entity, EntityFieldDefinition field)
    {
        var definitionAttributes = field.Property.GetCustomAttributes <EntityFieldDefinitionAttribute>();

        foreach (var definitionAttribute in definitionAttributes)
        {
            definitionAttribute.ApplyToEntityFieldDefinition(entity, field);
        }
    }
    public override void OnApplyingModule(EntityDefinition entity, EntityFieldDefinition field)
    {
        var metadata = field.Using <CrudAdminEntityFieldFeature>();

        if (field.Property.Name == nameof(IEntity.Id))
        {
            metadata.DisplayInEditor = false;
            metadata.DisplayOnSearch = false;
        }
    }
Esempio n. 6
0
 private EntityFieldEditorViewModel BuildFieldViewModel(EntityFieldDefinition definition, TEntity value, CrudAdminEntityFieldFeature feature)
 {
     return(new EntityFieldEditorViewModel(definition)
     {
         FieldName = definition.Property.Name,
         FieldEditorName = feature.EditorViewComponentName,
         Hidden = !feature.DisplayInEditor,
         Value = definition.Property.GetValue(value),
     });
 }
 public override Task <IViewComponentResult> InvokeAsync(EntityFieldDefinition fieldDefinition, object value)
 {
     return(Task.FromResult <IViewComponentResult>(View(new InputFieldEditorViewModel
     {
         Id = fieldDefinition.Property.Name,
         FieldName = fieldDefinition.Property.Name,
         Label = fieldDefinition.DisplayName,
         Value = value,
     })));
 }
Esempio n. 8
0
    private TableColumnViewModel BuildColumnViewModel(EntityFieldDefinition field)
    {
        var metadata = field.Using <CrudAdminEntityFieldFeature>();

        return(new TableColumnViewModel
        {
            DisplayName = field.DisplayName,
            Key = field.Property.Name,
            DisplayTemplate = metadata.DisplayTemplate,
            Properties = metadata.DisplayProperties,
        });
    }
    public override void OnApplyingFallbackDefaults(EntityDefinition entity, EntityFieldDefinition field)
    {
        var metadata = field.Using <CrudAdminEntityFieldFeature>();

        if (string.IsNullOrWhiteSpace(metadata.EditorViewComponentName))
        {
            metadata.EditorViewComponentName = nameof(InputFieldEditor);
        }

        if (string.IsNullOrWhiteSpace(metadata.DisplayTemplate))
        {
            metadata.DisplayTemplate = field.Property.PropertyType !.Name;
        }
    }
Esempio n. 10
0
 public abstract Task <IViewComponentResult> InvokeAsync(EntityFieldDefinition fieldDefinition, object value);
Esempio n. 11
0
    public static IHtmlContent DisplayForDefinedField <TModel, TResult>(this IHtmlHelper <TModel> htmlHelper, Expression <Func <TModel, TResult> > expression, EntityFieldDefinition definition)
    {
        var metadata = definition.Using <CrudAdminEntityFieldFeature>();

        return(htmlHelper.DisplayFor(expression, metadata.DisplayTemplate, definition.Property.Name, metadata.DisplayProperties));
    }
Esempio n. 12
0
 public virtual void OnApplyingFallbackDefaults(EntityDefinition entity, EntityFieldDefinition field)
 {
 }
Esempio n. 13
0
 public virtual void OnApplyingModule(EntityDefinition entity, EntityFieldDefinition field)
 {
 }
 /// <summary>
 /// Applies any changes to the entity field Definition caused by this attribute
 /// </summary>
 /// <param name="entity">The entity definition the field is on</param>
 /// <param name="field">The entity field Definition being built</param>
 protected internal abstract void ApplyToEntityFieldDefinition(EntityDefinition entity, EntityFieldDefinition field);
 internal EntityFieldDefinitionBuilder(EntityDefinition entity, EntityFieldDefinition field)
 {
     this.entity = entity;
     this.field  = field;
 }
Esempio n. 16
0
    protected override void ApplyToEntityFieldDefinition(EntityDefinition entity, EntityFieldDefinition field)
    {
        var metadata = field.Using <CrudAdminEntityFieldFeature>();

        metadata.EditorViewComponentName = ViewComponentName;
    }
Esempio n. 17
0
    protected override void ApplyToEntityFieldDefinition(EntityDefinition entity, EntityFieldDefinition field)
    {
        var metadata = field.Using <CrudAdminEntityFieldFeature>();

        metadata.EditorProperties[Name] = Value;
    }
Esempio n. 18
0
 /// <inheritdoc />
 protected internal override void ApplyToEntityFieldDefinition(EntityDefinition entity, EntityFieldDefinition field)
 {
     field.Using <JsonLdFieldFeature>().ExcludeFromLinkedData = true;
 }
Esempio n. 19
0
 protected internal override void ApplyToEntityFieldDefinition(EntityDefinition entity, EntityFieldDefinition field)
 {
     field.Using <JsonLdFieldFeature>().Iri = Iri;
 }