static async Task <DynamoDbScore> GetAsync( IAmazonDynamoDB client, string tableName, Guid ownerId, Guid scoreId) { var partitionKey = ScoreDatabaseUtils.ConvertToPartitionKey(ownerId); var score = ScoreDatabaseUtils.ConvertToBase64(scoreId); var request = new GetItemRequest() { TableName = tableName, Key = new Dictionary <string, AttributeValue>() { [DynamoDbScorePropertyNames.PartitionKey] = new AttributeValue(partitionKey), [DynamoDbScorePropertyNames.SortKey] = new AttributeValue(ScoreDatabaseConstant.ScoreIdMainPrefix + score), }, }; var response = await client.GetItemAsync(request); if (!response.IsItemSet) { throw new NotFoundScoreException("Not found score."); } var dynamoDbScore = new DynamoDbScore(response.Item); return(dynamoDbScore); }
public static ScoreDetail Create(DynamoDbScore score, Dictionary <string, string> hashSet) { if (score.Type != DynamoDbScoreTypes.Main) { throw new ArgumentException(nameof(score)); } var data = ScoreData.Create(score.Data); return(new ScoreDetail() { CreateAt = ScoreDatabaseUtils.ConvertFromUnixTimeMilli(score.CreateAt), UpdateAt = ScoreDatabaseUtils.ConvertFromUnixTimeMilli(score.UpdateAt), DataHash = score.DataHash, Data = data, Access = ScoreDatabaseUtils.ConvertToScoreAccess(score.Access), HashSet = hashSet.ToDictionary(x => x.Key, x => x.Value), }); }
public static ScoreSnapshotDetail Create(Guid snapshotId, string snapshotName, DynamoDbScore score, Dictionary <string, string> hashSet) { if (score.Type != DynamoDbScoreTypes.Main) { throw new ArgumentException(nameof(score)); } var data = ScoreData.Create(score.Data); return(new ScoreSnapshotDetail() { Id = snapshotId, Name = snapshotName, Data = data, HashSet = hashSet.ToDictionary(x => x.Key, x => x.Value), }); }