Beispiel #1
0
        private static async Task InvokeBulkImportSproc()
        {
            int numDocs = 1000;

            ExampleDoc[] docs = new ExampleDoc[numDocs];

            for (int i = 0; i < numDocs; i++)
            {
                ExampleDoc doc = new ExampleDoc
                {
                    Id = Guid.NewGuid().ToString()
                };

                docs[i] = doc;
            }

            var client         = new DocumentClient(new Uri(Endpoint), AuthKey);
            Uri collectionLink = UriFactory.CreateDocumentCollectionUri(DbName, CollectionName);

            string scriptFileName = @"bulkImport.js";
            string scriptId       = Path.GetFileNameWithoutExtension(scriptFileName);
            string scriptName     = "bulkImport";

            await CreateSprocIfNotExists(scriptFileName, scriptId, scriptName);

            Uri sprocUri = UriFactory.CreateStoredProcedureUri(DbName, CollectionName, scriptName);

            try
            {
                await client.ExecuteStoredProcedureAsync <int>(sprocUri, transactionId.ToString(), docs);
            }
            catch (DocumentClientException ex)
            {
                throw;
            }
            catch (AggregateException ex)
            {
                // If bulk import failed, delete all documents in the collection with TransactionId = id of the failed transaction.
                InvokeBulkDeleteSproc().Wait();
            }
        }
        private static async Task InvokeBulkImportSproc()
        {
            int numDocs = 1000;
            ExampleDoc[] docs = new ExampleDoc[numDocs];

            for (int i = 0; i < numDocs; i++)
            {
                ExampleDoc doc = new ExampleDoc
                {
                    Id = Guid.NewGuid().ToString()
                };

                docs[i] = doc;
            }

            var client = new DocumentClient(new Uri(Endpoint), AuthKey);
            Uri collectionLink = UriFactory.CreateDocumentCollectionUri(DbName, CollectionName);

            string scriptFileName = @"bulkImport.js";
            string scriptId = Path.GetFileNameWithoutExtension(scriptFileName);
            string scriptName = "bulkImport";

            await CreateSprocIfNotExists(scriptFileName, scriptId, scriptName);
            Uri sprocUri = UriFactory.CreateStoredProcedureUri(DbName, CollectionName, scriptName);

            try
            {
                await client.ExecuteStoredProcedureAsync<int>(sprocUri, transactionId.ToString(), docs);
            }
            catch (DocumentClientException ex)
            {
                throw;
            }
            catch (AggregateException ex)
            {
                // If bulk import failed, delete all documents in the collection with TransactionId = id of the failed transaction.
                InvokeBulkDeleteSproc().Wait();
            }
        }