diff options
author | Yuqian Yang <crupest@crupest.life> | 2025-02-19 02:05:39 +0800 |
---|---|---|
committer | Yuqian Yang <crupest@crupest.life> | 2025-02-19 02:42:42 +0800 |
commit | 4c5df72057fe02257e243de37930a47425a84722 (patch) | |
tree | f782d0e85c4a784b659e0da29f0bbf4fc25fc827 /dropped/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/InsertClause.cs | |
parent | 89e31c19bb8fca91c54a73ff7a7f4e837d1dbf93 (diff) | |
download | crupest-4c5df72057fe02257e243de37930a47425a84722.tar.gz crupest-4c5df72057fe02257e243de37930a47425a84722.tar.bz2 crupest-4c5df72057fe02257e243de37930a47425a84722.zip |
chore(docker): remove crupest-api, forgejo and move dropped.
Diffstat (limited to 'dropped/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/InsertClause.cs')
-rw-r--r-- | dropped/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/InsertClause.cs | 77 |
1 files changed, 0 insertions, 77 deletions
diff --git a/dropped/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/InsertClause.cs b/dropped/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/InsertClause.cs deleted file mode 100644 index a880e66..0000000 --- a/dropped/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/InsertClause.cs +++ /dev/null @@ -1,77 +0,0 @@ -using System.Text; - -namespace CrupestApi.Commons.Crud; - -public class InsertItem -{ - /// <summary> - /// Null means use default value. Use <see cref="DbNullValue"/>. - /// </summary> - public InsertItem(string columnName, object? value) - { - ColumnName = columnName; - Value = value; - } - - public string ColumnName { get; set; } - public object? Value { get; set; } -} - -public interface IInsertClause : IClause -{ - List<InsertItem> Items { get; } - string GenerateColumnListSql(string? dbProviderId = null); - (string sql, ParamList parameters) GenerateValueListSql(string? dbProviderId = null); -} - -public class InsertClause : IInsertClause -{ - public List<InsertItem> Items { get; } = new List<InsertItem>(); - - public InsertClause(params InsertItem[] items) - { - Items.AddRange(items); - } - - public InsertClause Add(params InsertItem[] items) - { - Items.AddRange(items); - return this; - } - - public InsertClause Add(string column, object? value) - { - return Add(new InsertItem(column, value)); - } - - public static InsertClause Create(params InsertItem[] items) - { - return new InsertClause(items); - } - - public List<string> GetRelatedColumns() - { - return Items.Select(i => i.ColumnName).ToList(); - } - - public string GenerateColumnListSql(string? dbProviderId = null) - { - return string.Join(", ", Items.Select(i => i.ColumnName)); - } - - public (string sql, ParamList parameters) GenerateValueListSql(string? dbProviderId = null) - { - var parameters = new ParamList(); - var sb = new StringBuilder(); - for (var i = 0; i < Items.Count; i++) - { - var item = Items[i]; - var parameterName = parameters.AddRandomNameParameter(item.Value, item.ColumnName); - sb.Append($"@{parameterName}"); - if (i != Items.Count - 1) - sb.Append(", "); - } - - return (sb.ToString(), parameters); - } -} |