aboutsummaryrefslogtreecommitdiff
path: root/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/OrderByClause.cs
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2022-12-05 20:28:58 +0800
committercrupest <crupest@outlook.com>2022-12-20 20:32:52 +0800
commit3d55a8a37e0e56e56a0bdad4fbb7a69a5d36d54b (patch)
tree01b0098fd4cb3fb5ee05aa7434b51d9a7e084b0e /docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/OrderByClause.cs
parentdb0932004e2d7462288044e4dd9c353d9b534793 (diff)
downloadcrupest-3d55a8a37e0e56e56a0bdad4fbb7a69a5d36d54b.tar.gz
crupest-3d55a8a37e0e56e56a0bdad4fbb7a69a5d36d54b.tar.bz2
crupest-3d55a8a37e0e56e56a0bdad4fbb7a69a5d36d54b.zip
Develop secret api. v10
Diffstat (limited to 'docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/OrderByClause.cs')
-rw-r--r--docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/OrderByClause.cs41
1 files changed, 41 insertions, 0 deletions
diff --git a/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/OrderByClause.cs b/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/OrderByClause.cs
new file mode 100644
index 0000000..bd4f300
--- /dev/null
+++ b/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/OrderByClause.cs
@@ -0,0 +1,41 @@
+namespace CrupestApi.Commons.Crud;
+
+public class OrderByItem
+{
+ public OrderByItem(string columnName, bool isAscending)
+ {
+ ColumnName = columnName;
+ IsAscending = isAscending;
+ }
+
+ public string ColumnName { get; }
+ public bool IsAscending { get; }
+
+ public string GenerateSql()
+ {
+ return $"{ColumnName} {(IsAscending ? "ASC" : "DESC")}";
+ }
+}
+
+public class OrderByClause : List<OrderByItem>
+{
+ public OrderByClause(IEnumerable<OrderByItem> items)
+ : base(items)
+ {
+ }
+
+ public OrderByClause(params OrderByItem[] items)
+ : base(items)
+ {
+ }
+
+ public static OrderByClause Create(params OrderByItem[] items)
+ {
+ return new OrderByClause(items);
+ }
+
+ public string GenerateSql()
+ {
+ return "ORDER BY " + string.Join(", ", this.Select(i => i.GenerateSql()));
+ }
+} \ No newline at end of file