aboutsummaryrefslogtreecommitdiff
path: root/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2022-12-21 16:55:37 +0800
committercrupest <crupest@outlook.com>2022-12-21 16:55:37 +0800
commitfb91ec33aea40c41900fee6bc2da769ff461ce38 (patch)
tree0ea65160485d03391d9de90ecbdb41ab6da2760b /docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud
parente5af550962befa6805beec0127e4064d4438df0a (diff)
downloadcrupest-fb91ec33aea40c41900fee6bc2da769ff461ce38.tar.gz
crupest-fb91ec33aea40c41900fee6bc2da769ff461ce38.tar.bz2
crupest-fb91ec33aea40c41900fee6bc2da769ff461ce38.zip
Develop secret api. v56
Diffstat (limited to 'docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud')
-rw-r--r--docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/ColumnInfo.cs32
1 files changed, 29 insertions, 3 deletions
diff --git a/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/ColumnInfo.cs b/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/ColumnInfo.cs
index 3d5c652..7e38469 100644
--- a/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/ColumnInfo.cs
+++ b/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/ColumnInfo.cs
@@ -129,9 +129,36 @@ public class ColumnInfo
}
}
- public void InvokeValidator(object value)
+ public void InvokeValidator(object? value)
{
- ValidatorMethod?.Invoke(null, new object?[] { this, value });
+ var method = this.ValidatorMethod;
+ if (method is null)
+ {
+ _logger.LogInformation("Try to invoke validator for column {} but it does not exist.", ColumnName);
+ return;
+ }
+ var parameters = method.GetParameters();
+ if (parameters.Length == 0)
+ {
+ throw new Exception("The validator method must have at least one parameter.");
+ }
+ else if (parameters.Length == 1)
+ {
+ method.Invoke(null, new object?[] { value });
+ }
+ else if (parameters.Length == 2)
+ {
+ if (parameters[0].ParameterType == typeof(ColumnInfo))
+ method.Invoke(null, new object?[] { this, value });
+ else if (parameters[1].ParameterType == typeof(ColumnInfo))
+ method.Invoke(null, new object?[] { value, this });
+ else
+ throw new Exception("The validator method must have a parameter of type ColumnInfo if it has 2 parameters.");
+ }
+ else
+ {
+ throw new Exception("The validator method can only have 1 or 2 parameters.");
+ }
}
public object? InvokeDefaultValueGenerator()
@@ -157,7 +184,6 @@ public class ColumnInfo
{
throw new Exception("The default value generator method can only have 0 or 1 parameter.");
}
-
}
public string GenerateCreateTableColumnString(string? dbProviderId = null)