コード例 #1
0
        private FatEntity ConvertToFatEntity(E entity)
        {
            byte[] data;
            if (entity.DataObject == null)
            {
                data = new byte[0];
            }
            else
            {
                data = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(entity.DataObject));

                if (_encryptor != null)
                {
                    using (var ms = new MemoryStream())
                    {
                        using (var enc = _encryptor.Encrypt(ms, false))
                        {
                            enc.Write(data, 0, data.Length);
                        }

                        data = ms.ToArray();
                    }
                }
            }

            var fat = new FatEntity()
            {
                PartitionKey = entity.PartitionKey,
                RowKey       = entity.RowKey
            };

            fat.SetData(data, data.Length);
            return(fat);
        }
コード例 #2
0
        public void InsertOrReplace(E entity)
        {
            CheckNotSaved();

            _context.InsertOrReplace(ConvertToFatEntity(entity));
            _isDirty = true;
        }
コード例 #3
0
        public void InsertOrReplace(E entity)
        {
            CheckNotSaved();

            _context.InsertOrReplace(ConvertToFatEntity(entity));
            _isDirty = true;
        }
コード例 #4
0
 public void Replace(E entity)
 {
     CheckNotSaved();
     var fat = ConvertToFatEntity(entity);
     fat.ETag = fat.ETag ?? "*";
     _context.Replace(fat);
     _isDirty = true;
 }
コード例 #5
0
        public void Replace(E entity)
        {
            CheckNotSaved();
            var fat = ConvertToFatEntity(entity);

            fat.ETag = fat.ETag ?? "*";
            _context.Replace(fat);
            _isDirty = true;
        }
コード例 #6
0
        public void Delete(E entity)
        {
            CheckNotSaved();

            // Delete is special in that we do not need the data to delete
            var fat = new FatEntity
            {
                PartitionKey = entity.PartitionKey,
                RowKey = entity.RowKey,
                ETag = "*"
            };
            _context.Delete(fat);
            _deleteBackupContext.InsertOrReplace(fat);
            _isDirty = true;
        }
コード例 #7
0
        public void Delete(E entity)
        {
            CheckNotSaved();

            // Delete is special in that we do not need the data to delete
            var fat = new FatEntity
            {
                PartitionKey = entity.PartitionKey,
                RowKey       = entity.RowKey,
                ETag         = "*"
            };

            _context.Delete(fat);
            _deleteBackupContext.InsertOrReplace(fat);
            _isDirty = true;
        }
コード例 #8
0
        private FatEntity ConvertToFatEntity(E entity)
        {
            byte[] data;
            if (entity.DataObject == null)
            {
                data = new byte[0];
            }
            else
            {
                data = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(entity.DataObject));

                if (_encryptor != null)
                {
                    using(var ms = new MemoryStream())
                    {
                        using(var enc = _encryptor.Encrypt(ms, false))
                        {
                            enc.Write(data, 0, data.Length);
                        }

                        data = ms.ToArray();
                    }
                }
            }

            var fat = new FatEntity()
            {
                PartitionKey = entity.PartitionKey,
                RowKey = entity.RowKey
            };

            fat.SetData(data, data.Length);
            return fat;
        }