diff options
author | crupest <crupest@outlook.com> | 2022-12-10 20:24:59 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2022-12-20 20:32:53 +0800 |
commit | c53adadcbf93a3b5c1f9c8e2b88bdd0efb122709 (patch) | |
tree | cd901fb537367c3340d47ccd537c4ae06b9af337 /docker/crupest-api/CrupestApi/CrupestApi.Commons/Crud/EntityJsonHelper.cs | |
parent | f208e75f9e074a3faab489de1093f660b87c2ec7 (diff) | |
download | crupest-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.cs | 36 |
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(); + } +} |