aboutsummaryrefslogtreecommitdiff
path: root/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/InsertClause.cs
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2024-11-11 01:12:29 +0800
committerYuqian Yang <crupest@crupest.life>2024-12-19 21:42:01 +0800
commitf9aa02ec1a4c24e80a206857d4f68198bb027bb4 (patch)
tree5994f0a62733b13f9f330e3515260ae20dc4a0bd /docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/InsertClause.cs
parent7b4d49e4bbdff6ddf1f8f7e937130e700024d5e9 (diff)
downloadcrupest-f9aa02ec1a4c24e80a206857d4f68198bb027bb4.tar.gz
crupest-f9aa02ec1a4c24e80a206857d4f68198bb027bb4.tar.bz2
crupest-f9aa02ec1a4c24e80a206857d4f68198bb027bb4.zip
HALF WORK: 2024.12.19
Re-organize file structure.
Diffstat (limited to 'docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/InsertClause.cs')
-rw-r--r--docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/InsertClause.cs77
1 files changed, 0 insertions, 77 deletions
diff --git a/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/InsertClause.cs b/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/InsertClause.cs
deleted file mode 100644
index a880e66..0000000
--- a/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);
- }
-}