aboutsummaryrefslogtreecommitdiff
path: root/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/OrderByClause.cs
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2022-12-07 20:41:20 +0800
committercrupest <crupest@outlook.com>2022-12-20 20:32:52 +0800
commit78396f289ab50ce414bd8f65af8854ffb52fff48 (patch)
tree59f3a1ebb2a8e896ad21bdcf5736fc0328c84e76 /docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/OrderByClause.cs
parent1870bc78d4a2733246322c5540761da852afe713 (diff)
downloadcrupest-78396f289ab50ce414bd8f65af8854ffb52fff48.tar.gz
crupest-78396f289ab50ce414bd8f65af8854ffb52fff48.tar.bz2
crupest-78396f289ab50ce414bd8f65af8854ffb52fff48.zip
Develop secret api. v17
Diffstat (limited to 'docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/OrderByClause.cs')
-rw-r--r--docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/OrderByClause.cs28
1 files changed, 19 insertions, 9 deletions
diff --git a/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/OrderByClause.cs b/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/OrderByClause.cs
index bd4f300..68b5d60 100644
--- a/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/OrderByClause.cs
+++ b/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/OrderByClause.cs
@@ -1,3 +1,5 @@
+using Dapper;
+
namespace CrupestApi.Commons.Crud;
public class OrderByItem
@@ -17,16 +19,19 @@ public class OrderByItem
}
}
-public class OrderByClause : List<OrderByItem>
+public interface IOrderByClause : IClause
{
- public OrderByClause(IEnumerable<OrderByItem> items)
- : base(items)
- {
- }
+ List<OrderByItem> Items { get; }
+ (string sql, DynamicParameters parameters) GenerateSql(string? dbProviderId = null);
+}
+
+public class OrderByClause : IOrderByClause
+{
+ public List<OrderByItem> Items { get; } = new List<OrderByItem>();
public OrderByClause(params OrderByItem[] items)
- : base(items)
{
+ Items.AddRange(items);
}
public static OrderByClause Create(params OrderByItem[] items)
@@ -34,8 +39,13 @@ public class OrderByClause : List<OrderByItem>
return new OrderByClause(items);
}
- public string GenerateSql()
+ public List<string> GetRelatedColumns()
{
- return "ORDER BY " + string.Join(", ", this.Select(i => i.GenerateSql()));
+ return Items.Select(x => x.ColumnName).ToList();
}
-} \ No newline at end of file
+
+ public (string sql, DynamicParameters parameters) GenerateSql(string? dbProviderId = null)
+ {
+ return ("ORDER BY " + string.Join(", ", Items.Select(i => i.GenerateSql())), new DynamicParameters());
+ }
+}