aboutsummaryrefslogtreecommitdiff
path: root/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/WhereClause.cs
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2022-12-09 18:22:20 +0800
committercrupest <crupest@outlook.com>2022-12-20 20:32:53 +0800
commita586767b9b6e122891a8cddba57aecef11ef4bd2 (patch)
tree058f34a17aa0cff56c702ace3f84d1918e541789 /docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/WhereClause.cs
parentbed807e3f8fab2f8b6ea3409886aac9f23f0f761 (diff)
downloadcrupest-a586767b9b6e122891a8cddba57aecef11ef4bd2.tar.gz
crupest-a586767b9b6e122891a8cddba57aecef11ef4bd2.tar.bz2
crupest-a586767b9b6e122891a8cddba57aecef11ef4bd2.zip
Develop secret api. v21
Diffstat (limited to 'docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/WhereClause.cs')
-rw-r--r--docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/WhereClause.cs39
1 files changed, 28 insertions, 11 deletions
diff --git a/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/WhereClause.cs b/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/WhereClause.cs
index 8a0b7ac..8ae2c01 100644
--- a/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/WhereClause.cs
+++ b/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/WhereClause.cs
@@ -15,12 +15,12 @@ public class CompositeWhereClause : IWhereClause
{
ConcatOp = concatOp;
ParenthesesSubclause = parenthesesSubclause;
- Subclauses = subclauses;
+ Subclauses = subclauses.ToList();
}
public string ConcatOp { get; }
public bool ParenthesesSubclause { get; }
- public IWhereClause[] Subclauses { get; }
+ public List<IWhereClause> Subclauses { get; }
public (string sql, DynamicParameters parameters) GenerateSql(string? dbProviderId = null)
{
@@ -106,7 +106,7 @@ public class SimpleCompareWhereClause : IWhereClause
{
public string Column { get; }
public string Operator { get; }
- public object Value { get; }
+ public object? Value { get; }
public List<string> GetRelatedColumns()
{
@@ -114,44 +114,44 @@ public class SimpleCompareWhereClause : IWhereClause
}
// It's user's responsibility to keep column safe, with proper escape.
- public SimpleCompareWhereClause(string column, string op, object value)
+ public SimpleCompareWhereClause(string column, string op, object? value)
{
Column = column;
Operator = op;
Value = value;
}
- public static SimpleCompareWhereClause Create(string column, string op, object value)
+ public static SimpleCompareWhereClause Create(string column, string op, object? value)
{
return new SimpleCompareWhereClause(column, op, value);
}
- public static SimpleCompareWhereClause Eq(string column, object value)
+ public static SimpleCompareWhereClause Eq(string column, object? value)
{
return new SimpleCompareWhereClause(column, "=", value);
}
- public static SimpleCompareWhereClause Neq(string column, object value)
+ public static SimpleCompareWhereClause Neq(string column, object? value)
{
return new SimpleCompareWhereClause(column, "<>", value);
}
- public static SimpleCompareWhereClause Gt(string column, object value)
+ public static SimpleCompareWhereClause Gt(string column, object? value)
{
return new SimpleCompareWhereClause(column, ">", value);
}
- public static SimpleCompareWhereClause Gte(string column, object value)
+ public static SimpleCompareWhereClause Gte(string column, object? value)
{
return new SimpleCompareWhereClause(column, ">=", value);
}
- public static SimpleCompareWhereClause Lt(string column, object value)
+ public static SimpleCompareWhereClause Lt(string column, object? value)
{
return new SimpleCompareWhereClause(column, "<", value);
}
- public static SimpleCompareWhereClause Lte(string column, object value)
+ public static SimpleCompareWhereClause Lte(string column, object? value)
{
return new SimpleCompareWhereClause(column, "<=", value);
}
@@ -163,3 +163,20 @@ public class SimpleCompareWhereClause : IWhereClause
return ($"{Column} {Operator} @{parameterName}", parameters);
}
}
+
+public class WhereClause : AndWhereClause
+{
+ public WhereClause()
+ {
+ }
+
+ public void Add(IWhereClause subclause)
+ {
+ Subclauses.Add(subclause);
+ }
+
+ public void Eq(string column, object? value)
+ {
+ Subclauses.Add(SimpleCompareWhereClause.Eq(column, value));
+ }
+}