コード例 #1
0
        internal static DataEntity Create(Sha1 sha1, IChasmBlob blob, bool forceOverwrite)
        {
            if (blob == null)
            {
                throw new ArgumentNullException(nameof(blob));
            }

            KeyValuePair <string, string> split = GetPartition(sha1);

            var entity = new DataEntity(split.Key, split.Value, blob, forceOverwrite);

            return(entity);
        }
コード例 #2
0
        internal static TableOperation BuildWriteOperation(Sha1 sha1, IChasmBlob blob)
        {
            if (blob == null)
            {
                throw new ArgumentNullException(nameof(blob));
            }

            DataEntity entity = Create(sha1, blob);

            var op = TableOperation.InsertOrReplace(entity);

            return(op);
        }
コード例 #3
0
        private async Task <bool> ExistsOnCloudAsync(Sha1 objectId, ChasmRequestContext requestContext = default, CancellationToken cancellationToken = default)
        {
            requestContext = ChasmRequestContext.Ensure(requestContext);
            var opContext = new OperationContext
            {
                ClientRequestID = requestContext.CorrelationId,
                CustomUserAgent = requestContext.CustomUserAgent
            };

            CloudTable     objectsTable = _objectsTable.Value;
            TableOperation op           = DataEntity.BuildExistsOperation(objectId);

            try
            {
                TableResult result = await objectsTable.ExecuteAsync(op, default, opContext, cancellationToken)
コード例 #4
0
        internal static TableOperation BuildDeleteOperation(Sha1 sha1)
        {
            KeyValuePair <string, string> split = GetPartition(sha1);

            var entity = new DataEntity
            {
                PartitionKey = split.Key,
                RowKey       = split.Value,
                ETag         = "*" // No need to fetch the entity first
            };

            var op = TableOperation.Delete(entity);

            return(op);
        }
コード例 #5
0
        internal static TableOperation BuildWriteOperation(string name, string branch, IChasmBlob blob)
        {
            if (string.IsNullOrWhiteSpace(name))
            {
                throw new ArgumentNullException(nameof(name));
            }
            if (string.IsNullOrWhiteSpace(branch))
            {
                throw new ArgumentNullException(nameof(branch));
            }
            if (blob == null)
            {
                throw new ArgumentNullException(nameof(blob));
            }

            DataEntity entity = Create(name, branch, blob);

            var op = TableOperation.InsertOrReplace(entity);

            return(op);
        }
コード例 #6
0
        internal static DataEntity Create(string name, string branch, IChasmBlob blob)
        {
            if (string.IsNullOrWhiteSpace(name))
            {
                throw new ArgumentNullException(nameof(name));
            }
            if (string.IsNullOrWhiteSpace(branch))
            {
                throw new ArgumentNullException(nameof(branch));
            }
            if (blob == null)
            {
                throw new ArgumentNullException(nameof(blob));
            }

            string partitionKey = GetPartitionKey(name);
            string rowKey       = GetRowKey(branch);

            var entity = new DataEntity(partitionKey, rowKey, blob);

            return(entity);
        }