+ @foreach (Type rule in EngineAssembly.GetTypes())
{
RuleAttribute? ra = rule.GetCustomAttribute();
if (ra == null) continue;
-
+
+
+ @ra.Hint
+
}
+
}
else
{
- foreach (FieldInfo field in EngineRule.GetType().GetFields().Reverse())
+ foreach (FieldInfo field in EngineRuleType.GetFields().Reverse())
{
RuleFieldAttribute? fa = field.GetCustomAttribute();
if (fa == null) continue;
@{
- string value = Settings[field.Name];
+ string value = "";
+ if (Settings.ContainsKey(field.Name)) value = Settings[field.Name];
}
@if (field.FieldType == typeof(Regex))
{
@@ -82,7 +96,7 @@
[Parameter]
public int Index { get; set; }
private string Error { get; set; } = "";
- private Type EngineRuleType = typeof(Rule);
+ private Type? EngineRuleType;
private Engine.Rule? EngineRule;
private bool DeleteIntent = false;
private Assembly EngineAssembly = Assembly.GetAssembly(typeof(Engine.Tikhole))!;
@@ -108,7 +122,9 @@
}
private void LoadSettings()
{
- foreach (FieldInfo field in EngineRuleType.GetFields().Reverse())
+ if (EngineRuleType == null) return;
+ Settings.Clear();
+ foreach (FieldInfo field in EngineRuleType.GetFields())
{
string value = field.GetValue(EngineRule)?.ToString() ?? "";
if (field.FieldType == typeof(System.Timers.Timer))
@@ -124,29 +140,46 @@
}
private void SaveSettings()
{
+ Error = "";
+ if (EngineRuleType == null) return;
try
{
- foreach (FieldInfo field in EngineRuleType.GetFields())
+ List
index++;
@@ -47,4 +47,20 @@
{
base.OnInitialized();
}
+ private void MoveUp(Engine.Rule Rule)
+ {
+ int index = Engine.Matcher.Rules.IndexOf(Rule) - 1;
+ if (index < 0) return;
+ Engine.Matcher.Rules.Remove(Rule);
+ Engine.Matcher.Rules.Insert(index, Rule);
+ Engine.Configurator.SaveConfig();
+ }
+ private void MoveDown(Engine.Rule Rule)
+ {
+ int index = Engine.Matcher.Rules.IndexOf(Rule) + 1;
+ if (index >= Engine.Matcher.Rules.Count) return;
+ Engine.Matcher.Rules.Remove(Rule);
+ Engine.Matcher.Rules.Insert(index, Rule);
+ Engine.Configurator.SaveConfig();
+ }
}
\ No newline at end of file