초기커밋
This commit is contained in:
82
ServerBase/DB/DynamoDb/AttribBase.cs
Normal file
82
ServerBase/DB/DynamoDb/AttribBase.cs
Normal file
@@ -0,0 +1,82 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Reflection.Metadata;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Serialization;
|
||||
using Amazon.DynamoDBv2.DocumentModel;
|
||||
using Newtonsoft.Json.Linq;
|
||||
|
||||
|
||||
namespace ServerBase;
|
||||
|
||||
public abstract partial class AttribBase
|
||||
{
|
||||
// AttribType은 DynamoDb Document 정보를 Read시 식별키로 사용되기 때문에 고유하게 정의되어야 한다 !!! - kangms
|
||||
[JsonProperty("attrib_type")]
|
||||
public readonly string AttribType;
|
||||
|
||||
private readonly bool m_is_save_to_json_in_db = false;
|
||||
|
||||
public AttribBase(string attribType, bool isSaveToJsonInDb = true)
|
||||
{
|
||||
AttribType = attribType;
|
||||
m_is_save_to_json_in_db = isSaveToJsonInDb;
|
||||
}
|
||||
|
||||
public bool isSaveToJsonInDb() => m_is_save_to_json_in_db;
|
||||
|
||||
public virtual string toJsonString()
|
||||
{
|
||||
return JsonConvert.SerializeObject(this);
|
||||
}
|
||||
|
||||
public virtual Amazon.DynamoDBv2.DocumentModel.Document toDocument()
|
||||
{
|
||||
return DynamoDbClientHelper.classToDynamoDbDocument(this);
|
||||
}
|
||||
public virtual string toBasicString()
|
||||
{
|
||||
return $"AttribType:{AttribType}, {toJsonString()}";
|
||||
}
|
||||
}
|
||||
|
||||
public partial class AttribWrapper<TAttrib> : IAttribWrapper
|
||||
where TAttrib : AttribBase, new()
|
||||
{
|
||||
private TAttrib m_attrib = new();
|
||||
|
||||
public AttribWrapper()
|
||||
{}
|
||||
|
||||
public bool onCopyFromDynamoDbEntry(Amazon.DynamoDBv2.DocumentModel.Document doc)
|
||||
{
|
||||
if(false == doc.fillupAttribObject<TAttrib>(out var fillup_attrib))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (fillup_attrib == null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
m_attrib = fillup_attrib;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public bool onCopyToDynamoDbEntry(ref Amazon.DynamoDBv2.DocumentModel.Document doc)
|
||||
{
|
||||
return doc.setAttribObject<TAttrib>(m_attrib);
|
||||
}
|
||||
|
||||
public bool onFillupJsonStringToJObject(ref JObject jobject)
|
||||
{
|
||||
return jobject.setAttribObjectWithJsonString<TAttrib>(m_attrib);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user