diff options
author | crupest <crupest@outlook.com> | 2022-12-07 20:41:20 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2022-12-20 20:32:52 +0800 |
commit | 78396f289ab50ce414bd8f65af8854ffb52fff48 (patch) | |
tree | 59f3a1ebb2a8e896ad21bdcf5736fc0328c84e76 /docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/OrderByClause.cs | |
parent | 1870bc78d4a2733246322c5540761da852afe713 (diff) | |
download | crupest-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.cs | 28 |
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()); + } +} |