using Newtonsoft.Json; using ServerCore; using ServerBase; namespace ServerCommon; public class CaliumContentAttrib : AttribBase { [JsonProperty("calium_content_id")] public string ContentId { get; set; } = string.Empty; [JsonProperty("calium")] public double TotalCalium { get; set; } = 0.0; public CaliumContentAttrib() : base(nameof(CaliumContentAttrib), false) {} } //============================================================================================= // PK(Partition Key) : "calium#content" // SK(Sort Key) : "contentId" // DocType : CaliumEventDoc // CaliumContentAttrib : {} // ... //============================================================================================= public class CaliumContentDoc : DynamoDbDocBase { public static string pk = "calium#content"; private readonly string m_content_id; private string getPrefixOfPK() => pk; private string getPrefixOfSK() => m_content_id; public CaliumContentDoc(string contentId) : base(nameof(CaliumContentDoc)) { m_content_id = contentId; setCombinationKeyForSK(contentId); fillUpPrimaryKey(onMakePK(), onMakeSK()); appendAttribWrapperAll(); var doc_attrib = getAttrib(); NullReferenceCheckHelper.throwIfNull(doc_attrib, () => $"doc_attrib is null !!! - contentId:{contentId}"); doc_attrib.ContentId = contentId; } private void appendAttribWrapperAll() { appendAttribWrapper(new AttribWrapper()); } protected override string onGetPrefixOfPK() { return getPrefixOfPK(); } protected override string onGetPrefixOfSK() { return getPrefixOfSK(); } protected override ServerErrorCode onCheckAndSetPK(string sortKey) { getPrimaryKey().fillUpPK(sortKey); return ServerErrorCode.Success; } protected override ServerErrorCode onCheckAndSetSK(string sortKey) { getPrimaryKey().fillUpSK(sortKey); setCombinationKeyForSK(sortKey); return ServerErrorCode.Success; } }