Esempio n. 1
0
 public void RestoreRecord(IMyNoSqlDbEntity entityInfo, IMyMemory data)
 {
     if (!_rows.ContainsKey(entityInfo.RowKey))
     {
         _rows.Add(entityInfo.RowKey, DbRow.RestoreSnapshot(entityInfo, data));
     }
 }
Esempio n. 2
0
 public MyNoSqlIndex(string partitionKey, string rowKey, IMyNoSqlDbEntity tableEntity)
 {
     PartitionKey        = partitionKey;
     RowKey              = rowKey;
     PrimaryPartitionKey = tableEntity.PartitionKey;
     PrimaryRowKey       = tableEntity.RowKey;
 }
Esempio n. 3
0
        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()));
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
        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();
            }
        }
Esempio n. 7
0
 public static byte[] AsJsonByteArray(this IMyNoSqlDbEntity myNoSqlDbEntity)
 {
     return(Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(myNoSqlDbEntity)));
 }
Esempio n. 8
0
 public static DbRow RestoreSnapshot(IMyNoSqlDbEntity techData, IMyMemory data)
 {
     return(new DbRow(techData.PartitionKey, techData.RowKey, techData.TimeStamp, techData.Expires, data.AsArray()));
 }