Beispiel #1
0
        private async Task ApplyOperationAsync(DocumentClient client, DataOperation operation)
        {
            IHavePartition <string, string> entity = operation.Entity;
            var partitionKey   = new PartitionKey(entity.PartitionKey);
            var requestOptions = new RequestOptions {
                PartitionKey = partitionKey
            };

            switch (operation.Type)
            {
            case DataOperationType.Upsert:
                Uri collectionUri = GetCollectionUri(operation.StoreName);
                await client.UpsertDocumentAsync(collectionUri, operation.Entity, requestOptions);

                break;

            case DataOperationType.Remove:
                Uri documentUri = GetDocumentUri(operation.StoreName, entity.Id);
                await client.DeleteDocumentAsync(documentUri, requestOptions);

                break;
            }
        }
Beispiel #2
0
        private async Task ApplyOperationAsync(DataOperation operation)
        {
            IHavePartition <string, string> entity = operation.Entity;
            TableOperation tableOperation          = null;

            switch (operation.Type)
            {
            case DataOperationType.Upsert:
                tableOperation = TableOperation.InsertOrReplace((ITableEntity)operation.Entity);
                break;

            case DataOperationType.Remove:
                tableOperation = TableOperation.Delete((ITableEntity)operation.Entity);
                break;

            default:
                return;
            }

            CloudTable table = _tableClient.GetTableReference(operation.StoreName);
            await table.ExecuteAsync(tableOperation);

            // TODO: Handle a failed execution.
        }
 public DataOperation(DataOperationType operationType, string storeName, IHavePartition <string, string> entity)
 {
     Type      = operationType;
     StoreName = storeName;
     Entity    = entity;
 }
Beispiel #4
0
 public void AddOperation(DataOperationType operationType, string storeName, IHavePartition <string, string> entity)
 {
     _operations.Add(new DataOperation(operationType, storeName, entity));
 }