/// <summary>Snippet for CreateBatch</summary>
        public void CreateBatchRequestObject()
        {
            // Snippet: CreateBatch(CreateBatchRequest, CallSettings)
            // Create client
            BatchControllerClient batchControllerClient = BatchControllerClient.Create();
            // Initialize request argument(s)
            CreateBatchRequest request = new CreateBatchRequest
            {
                ParentAsLocationName = LocationName.FromProjectLocation("[PROJECT]", "[LOCATION]"),
                Batch     = new Batch(),
                BatchId   = "",
                RequestId = "",
            };
            // Make the request
            Operation <Batch, BatchOperationMetadata> response = batchControllerClient.CreateBatch(request);

            // Poll until the returned long-running operation is complete
            Operation <Batch, BatchOperationMetadata> completedResponse = response.PollUntilCompleted();
            // Retrieve the operation result
            Batch result = completedResponse.Result;

            // Or get the name of the operation
            string operationName = response.Name;
            // This name can be stored, then the long-running operation retrieved later by name
            Operation <Batch, BatchOperationMetadata> retrievedResponse = batchControllerClient.PollOnceCreateBatch(operationName);

            // Check if the retrieved long-running operation has completed
            if (retrievedResponse.IsCompleted)
            {
                // If it has completed, then access the result
                Batch retrievedResult = retrievedResponse.Result;
            }
            // End snippet
        }
        public void UpsertAccountTest()
        {
            // Upsert an account
            String externalFieldName = ConfigurationManager.AppSettings["ExternalFieldName"];

            Assert.AreNotEqual("external_id_here_for_upsert_test", externalFieldName, "Please specify an external id account field.");

            CreateJobRequest jobRequest = buildDefaultUpsertAccountCreateJobRequest(externalFieldName);

            Job job = _apiClient.CreateJob(jobRequest);

            String batchContents = buildDefaultAccountBatchContents();

            CreateBatchRequest batchRequest = buildCreateBatchRequest(job.Id, batchContents);

            Batch accountBatch = _apiClient.CreateBatch(batchRequest);

            // Close job so no more batches are added.
            _apiClient.CloseJob(job.Id);

            job = _apiClient.GetCompletedJob(job.Id);

            Assert.IsTrue(job.NumberBatchesFailed == 0);
            Assert.IsTrue(job.NumberRecordsProcessed > 0);
        }
Пример #3
0
        public async Task <CreateBatchResponse> Post(CreateBatchRequest request)
        {
            var batch = request.ConvertTo <Batch>();

            batch.Id        = idGenerator.Generate();
            batch.CreatedOn = DateTime.UtcNow;

            await batchRepository.Create(batch);

            return(new CreateBatchResponse
            {
                BatchId = batch.Id
            });
        }
        public void GetBatchResultsTest()
        {
            CreateJobRequest insertAccountJobRequest = buildDefaultInsertAccountCreateJobRequest();
            Job insertAccountJob = _apiClient.CreateJob(insertAccountJobRequest);

            String batchContents = buildDefaultAccountBatchContents();

            CreateBatchRequest batchRequest = buildCreateBatchRequest(insertAccountJob.Id, batchContents);

            Batch accountBatch = _apiClient.CreateBatch(batchRequest);

            String batchResults = _apiClient.GetBatchResults(accountBatch.JobId, accountBatch.Id);

            Assert.IsTrue(String.IsNullOrWhiteSpace(batchResults) == false);
        }
        public void GetBatchRequestTest()
        {
            CreateJobRequest insertAccountJobRequest = buildDefaultInsertAccountCreateJobRequest();
            Job insertAccountJob = _apiClient.CreateJob(insertAccountJobRequest);

            String batchContents = buildDefaultAccountBatchContents();

            CreateBatchRequest batchRequest = buildCreateBatchRequest(insertAccountJob.Id, batchContents);

            Batch accountBatch = _apiClient.CreateBatch(batchRequest);

            String batchRequestContents = _apiClient.GetBatchRequest(accountBatch.JobId, accountBatch.Id);

            Assert.AreEqual(batchContents, batchRequestContents);
        }
Пример #6
0
        /// <summary>
        /// 创建批次
        /// </summary>
        /// <param name="req"><see cref="CreateBatchRequest"/></param>
        /// <returns><see cref="CreateBatchResponse"/></returns>
        public CreateBatchResponse CreateBatchSync(CreateBatchRequest req)
        {
            JsonResponseModel <CreateBatchResponse> rsp = null;

            try
            {
                var strResp = this.InternalRequestSync(req, "CreateBatch");
                rsp = JsonConvert.DeserializeObject <JsonResponseModel <CreateBatchResponse> >(strResp);
            }
            catch (JsonSerializationException e)
            {
                throw new TencentCloudSDKException(e.Message);
            }
            return(rsp.Response);
        }
        public void QueryAccountTest()
        {
            // Insert an account so there's at least one to query
            CreateJobRequest insertAccountJobRequest = buildDefaultInsertAccountCreateJobRequest();
            Job insertAccountJob = _apiClient.CreateJob(insertAccountJobRequest);

            String batchContents = buildDefaultAccountBatchContents();

            CreateBatchRequest batchRequest = buildCreateBatchRequest(insertAccountJob.Id, batchContents);

            Batch accountBatch = _apiClient.CreateBatch(batchRequest);

            _apiClient.CloseJob(insertAccountJob.Id);

            insertAccountJob = _apiClient.GetCompletedJob(insertAccountJob.Id);

            // Query the account that was inserted.
            CreateJobRequest queryAccountJobRequest = buildDefaultQueryAccountCreateJobRequest();
            Job queryJob = _apiClient.CreateJob(queryAccountJobRequest);

            String accountQuery = "SELECT Id, Name FROM Account WHERE Name = '" + DEFAULT_ACCOUNT_NAME + "'";

            CreateBatchRequest queryBatchRequest = buildCreateBatchRequest(queryJob.Id, accountQuery);

            queryBatchRequest.BatchContentType = BatchContentType.CSV;
            Batch queryBatch = _apiClient.CreateBatch(queryBatchRequest);

            _apiClient.CloseJob(queryJob.Id);

            queryJob = _apiClient.GetCompletedJob(queryJob.Id);

            String batchQueryResultsList = _apiClient.GetBatchResults(queryBatch.JobId, queryBatch.Id);

            List <String> resultIds = _apiClient.GetResultIds(batchQueryResultsList);

            Assert.AreEqual(1, resultIds.Count);

            String batchQueryResults = _apiClient.GetBatchResult(queryBatch.JobId, queryBatch.Id, resultIds[0]);

            Assert.IsTrue(batchQueryResults.Contains(DEFAULT_ACCOUNT_NAME));
        }
        public void GetJobBatchesTest()
        {
            CreateJobRequest insertAccountJobRequest = buildDefaultInsertAccountCreateJobRequest();
            Job insertAccountJob = _apiClient.CreateJob(insertAccountJobRequest);

            String batchContents = buildDefaultAccountBatchContents();

            CreateBatchRequest batchRequest = buildCreateBatchRequest(insertAccountJob.Id, batchContents);

            Batch accountBatch = _apiClient.CreateBatch(batchRequest);

            String batchContents2 = buildDefaultAccountBatchContents("Test Name2");

            CreateBatchRequest batchRequest2 = buildCreateBatchRequest(insertAccountJob.Id, batchContents2);

            Batch accountBatch2 = _apiClient.CreateBatch(batchRequest2);

            List <Batch> batches = _apiClient.GetBatches(insertAccountJob.Id);

            Assert.AreEqual(2, batches.Count);
        }
        public void InsertAccountsWith1BatchTest()
        {
            CreateJobRequest insertAccountJobRequest = buildDefaultInsertAccountCreateJobRequest();
            Job insertAccountJob = _apiClient.CreateJob(insertAccountJobRequest);

            String batchContents = buildDefaultAccountBatchContents();

            CreateBatchRequest insertAccountBatchRequest = buildCreateBatchRequest(insertAccountJob.Id, batchContents);

            Batch accountBatch = _apiClient.CreateBatch(insertAccountBatchRequest);

            Assert.IsTrue(accountBatch != null);
            Assert.IsTrue(String.IsNullOrWhiteSpace(accountBatch.Id) == false);

            // Close job so no more batches are added.
            _apiClient.CloseJob(insertAccountJob.Id);

            insertAccountJob = _apiClient.GetCompletedJob(insertAccountJob.Id);

            Assert.IsTrue(insertAccountJob.NumberRecordsFailed == 0);
            Assert.IsTrue(insertAccountJob.NumberRecordsProcessed == 1);
        }
        public void DeleteAccountTest()
        {
            // Insert an account so there's at least one to delete
            CreateJobRequest jobRequest = buildDefaultInsertAccountCreateJobRequest();
            Job job = _apiClient.CreateJob(jobRequest);

            String batchContents = buildDefaultAccountBatchContents();

            CreateBatchRequest batchRequest = buildCreateBatchRequest(job.Id, batchContents);

            Batch accountBatch = _apiClient.CreateBatch(batchRequest);

            _apiClient.CloseJob(job.Id);

            job = _apiClient.GetCompletedJob(job.Id);

            // Query the accounts to dynamically retreive the account id to delete
            CreateJobRequest queryAccountJobRequest = buildDefaultQueryAccountCreateJobRequest();
            Job queryJob = _apiClient.CreateJob(queryAccountJobRequest);

            String accountQuery = "SELECT Id FROM Account WHERE Name = '" + DEFAULT_ACCOUNT_NAME + "'";

            CreateBatchRequest queryBatchRequest = buildCreateBatchRequest(queryJob.Id, accountQuery);

            queryBatchRequest.BatchContentType = BatchContentType.CSV;
            Batch queryBatch = _apiClient.CreateBatch(queryBatchRequest);

            // Close job so no more batches are added.
            _apiClient.CloseJob(queryJob.Id);

            queryJob = _apiClient.GetCompletedJob(queryJob.Id);

            String batchQueryResultsList = _apiClient.GetBatchResults(queryBatch.JobId, queryBatch.Id);

            List <String> resultIds = _apiClient.GetResultIds(batchQueryResultsList);

            Assert.AreEqual(1, resultIds.Count);

            String batchQueryResults = _apiClient.GetBatchResult(queryBatch.JobId, queryBatch.Id, resultIds[0]);

            String[] batchQueryResultsParts = batchQueryResults.Split(new String[] { "\n" }, StringSplitOptions.RemoveEmptyEntries);

            String firstAccountIdToDelete = batchQueryResultsParts[1].Replace(@"""", String.Empty);


            // Delete the account
            CreateJobRequest deleteAccountJobRequest = buildDefaultDeleteAccountCreateJobRequest();
            Job deleteJob = _apiClient.CreateJob(deleteAccountJobRequest);

            String deleteBatchContents = "Id" + Environment.NewLine + firstAccountIdToDelete;

            CreateBatchRequest deleteBatchRequest = buildCreateBatchRequest(deleteJob.Id, deleteBatchContents);
            Batch deleteBatch = _apiClient.CreateBatch(deleteBatchRequest);

            // Close job so no more batches are added.
            _apiClient.CloseJob(deleteJob.Id);

            deleteJob = _apiClient.GetCompletedJob(deleteJob.Id);

            Assert.AreEqual(1, deleteJob.NumberRecordsProcessed);
        }