diff options
author | crupest <crupest@outlook.com> | 2022-12-05 20:28:58 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2022-12-20 20:32:52 +0800 |
commit | 3d55a8a37e0e56e56a0bdad4fbb7a69a5d36d54b (patch) | |
tree | 01b0098fd4cb3fb5ee05aa7434b51d9a7e084b0e /docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/OrderByClause.cs | |
parent | db0932004e2d7462288044e4dd9c353d9b534793 (diff) | |
download | crupest-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.cs | 41 |
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 |