public void RestoreRecord(IMyNoSqlDbEntity entityInfo, IMyMemory data) { if (!_rows.ContainsKey(entityInfo.RowKey)) { _rows.Add(entityInfo.RowKey, DbRow.RestoreSnapshot(entityInfo, data)); } }
public MyNoSqlIndex(string partitionKey, string rowKey, IMyNoSqlDbEntity tableEntity) { PartitionKey = partitionKey; RowKey = rowKey; PrimaryPartitionKey = tableEntity.PartitionKey; PrimaryRowKey = tableEntity.RowKey; }
public static DbRow CreateNew(IMyNoSqlDbEntity entity, List <MyJsonFirstLevelFieldData> fields) { var timeStamp = DateTime.UtcNow.ToTimeStampString(); fields.InjectTimeStamp(timeStamp); return(new DbRow(entity.PartitionKey, entity.RowKey, timeStamp, fields.AsDbRowJson())); }
public (DbPartition partition, DbRow dbRow) Insert(IMyNoSqlDbEntity entityInfo, List <MyJsonFirstLevelFieldData> fields) { ReaderWriterLockSlim.EnterWriteLock(); try { if (!_partitions.ContainsKey(entityInfo.PartitionKey)) { _partitions.Add(entityInfo.PartitionKey, DbPartition.Create(entityInfo.PartitionKey)); } var partition = _partitions[entityInfo.PartitionKey]; var dbRow = DbRow.CreateNew(entityInfo, fields); if (partition.Insert(dbRow)) { return(partition, dbRow); } } finally { ReaderWriterLockSlim.ExitWriteLock(); } return(null, null); }
public static MyNoSqlIndex Create( string partitionKey, string rowKey, IMyNoSqlDbEntity tableEntity) { var azureIndex = new MyNoSqlIndex { PartitionKey = partitionKey, RowKey = rowKey, PrimaryPartitionKey = tableEntity.PartitionKey, PrimaryRowKey = tableEntity.RowKey }; return(azureIndex); }
public bool HasRecord(IMyNoSqlDbEntity entityInfo) { _readerWriterLockSlim.EnterReadLock(); try { if (!_partitions.ContainsKey(entityInfo.PartitionKey)) { return(false); } var partition = _partitions[entityInfo.PartitionKey]; return(partition.HasRecord(entityInfo.RowKey)); } finally { _readerWriterLockSlim.ExitReadLock(); } }
public static byte[] AsJsonByteArray(this IMyNoSqlDbEntity myNoSqlDbEntity) { return(Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(myNoSqlDbEntity))); }
public static DbRow RestoreSnapshot(IMyNoSqlDbEntity techData, IMyMemory data) { return(new DbRow(techData.PartitionKey, techData.RowKey, techData.TimeStamp, techData.Expires, data.AsArray())); }