diff options
Diffstat (limited to 'docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/InsertClause.cs')
-rw-r--r-- | docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/InsertClause.cs | 35 |
1 files changed, 11 insertions, 24 deletions
diff --git a/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/InsertClause.cs b/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/InsertClause.cs index 35b7cc9..b5f9f38 100644 --- a/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/InsertClause.cs +++ b/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/InsertClause.cs @@ -11,35 +11,21 @@ public class InsertItem Value = value; } - public InsertItem(KeyValuePair<string, object?> pair) - { - ColumnName = pair.Key; - Value = pair.Value; - } - public string ColumnName { get; set; } public object? Value { get; set; } +} - public static implicit operator KeyValuePair<string, object?>(InsertItem item) - { - return new(item.ColumnName, item.Value); - } - - public static implicit operator InsertItem(KeyValuePair<string, object?> pair) - { - return new(pair); - } +public interface IInsertClause : IClause +{ + List<InsertItem> Items { get; } + string GenerateColumnListSql(string? dbProviderId = null); + (string sql, DynamicParameters parameters) GenerateValueListSql(string? dbProviderId = null); } -public class InsertClause +public class InsertClause : IInsertClause { public List<InsertItem> Items { get; } = new List<InsertItem>(); - public InsertClause(IEnumerable<InsertItem> items) - { - Items.AddRange(items); - } - public InsertClause(params InsertItem[] items) { Items.AddRange(items); @@ -66,13 +52,14 @@ public class InsertClause return Items.Select(i => i.ColumnName).ToList(); } - public string GenerateColumnListSql() + public string GenerateColumnListSql(string? dbProviderId = null) { return string.Join(", ", Items.Select(i => i.ColumnName)); } - public string GenerateValueListSql(DynamicParameters parameters) + public (string sql, DynamicParameters parameters) GenerateValueListSql(string? dbProviderId = null) { + var parameters = new DynamicParameters(); var sb = new StringBuilder(); for (var i = 0; i < Items.Count; i++) { @@ -83,6 +70,6 @@ public class InsertClause sb.Append(", "); } - return sb.ToString(); + return (sb.ToString(), parameters); } } |