Added edit modal

This commit is contained in:
Leon Hoppe
2025-01-15 14:58:15 +01:00
parent ad4d9c65d6
commit d4018cceec
12 changed files with 179 additions and 19 deletions

View File

@@ -10,6 +10,9 @@ public class PropertyConfig(PropertyInfo info) {
public bool Sortable { get; set; } = true;
public bool Searchable { get; set; } = true;
public PropertyInfo? DisplayedProperty { get; set; }
public Func<object, string>? Formatter { get; set; }
public bool Editable { get; set; } = true;
public bool Creatable { get; set; } = true;
}
public class PropertyConfig<TProp>(PropertyConfig config) {
@@ -39,5 +42,20 @@ public class PropertyConfig<TProp>(PropertyConfig config) {
config.DisplayedProperty = TableConfig<TProp>.GetPropertyInfo(propertyExpression);
return this;
}
public PropertyConfig<TProp> Format(Func<TProp, string> formatter) {
config.Formatter = obj => formatter.Invoke((TProp)obj);
return this;
}
public PropertyConfig<TProp> Editable(bool editable) {
config.Editable = editable;
return this;
}
public PropertyConfig<TProp> Creatable(bool creatable) {
config.Creatable = creatable;
return this;
}
}

View File

@@ -1,4 +1,6 @@
using System.Linq.Expressions;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq.Expressions;
using System.Reflection;
namespace HopFrame.Core.Config;
@@ -17,7 +19,18 @@ public class TableConfig {
ContextConfig = config;
foreach (var info in tableType.GetProperties()) {
Properties.Add(new PropertyConfig(info));
var propConfig = new PropertyConfig(info);
if (info.GetCustomAttributes(true).Any(a => a is DatabaseGeneratedAttribute)) {
propConfig.Creatable = false;
propConfig.Editable = false;
}
if (info.GetCustomAttributes(true).Any(a => a is KeyAttribute)) {
propConfig.Editable = false;
}
Properties.Add(propConfig);
}
}
}