aboutsummaryrefslogtreecommitdiff
path: root/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/EntityJsonHelper.cs
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2022-12-10 20:24:59 +0800
committercrupest <crupest@outlook.com>2022-12-20 20:32:53 +0800
commitc53adadcbf93a3b5c1f9c8e2b88bdd0efb122709 (patch)
treecd901fb537367c3340d47ccd537c4ae06b9af337 /docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/EntityJsonHelper.cs
parentf208e75f9e074a3faab489de1093f660b87c2ec7 (diff)
downloadcrupest-c53adadcbf93a3b5c1f9c8e2b88bdd0efb122709.tar.gz
crupest-c53adadcbf93a3b5c1f9c8e2b88bdd0efb122709.tar.bz2
crupest-c53adadcbf93a3b5c1f9c8e2b88bdd0efb122709.zip
Develop secret api. v25
Diffstat (limited to 'docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/EntityJsonHelper.cs')
-rw-r--r--docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/EntityJsonHelper.cs36
1 files changed, 36 insertions, 0 deletions
diff --git a/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/EntityJsonHelper.cs b/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/EntityJsonHelper.cs
new file mode 100644
index 0000000..a1e4583
--- /dev/null
+++ b/docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/EntityJsonHelper.cs
@@ -0,0 +1,36 @@
+using System.Text.Json;
+
+namespace CrupestApi.Commons.Crud;
+
+public class EntityJsonHelper
+{
+ private readonly TableInfo _table;
+
+ public EntityJsonHelper(TableInfo table)
+ {
+ _table = table;
+ }
+
+ public virtual JsonDocument ConvertEntityToJson(object? entity)
+ {
+ if (entity is null) return JsonSerializer.SerializeToDocument<object?>(null);
+
+ var result = new Dictionary<string, object?>();
+
+ foreach (var column in _table.ColumnInfos)
+ {
+ if (column.PropertyInfo is not null)
+ {
+ result.Add(column.ColumnName, column.PropertyInfo.GetValue(entity));
+ }
+ }
+
+ return JsonSerializer.SerializeToDocument(result);
+ }
+
+ public virtual object? ConvertJsonToEntity(JsonDocument? json)
+ {
+ // TODO: Implement this.
+ throw new NotImplementedException();
+ }
+}