예제 #1
0
 /// <summary>
 /// Creates a transaction update job request object
 /// </summary>
 /// <param name="updateTransaction">The update transaction data</param>
 /// <param name="label">OPTIONAL: A user-friendly label for the job. May be NULL to </param>
 /// <returns>A new <see cref="JobRequestObject"/> instance</returns>
 public static JobRequestObject CreateTransactionJob(UpdateTransactionData updateTransaction, 
                                                     string label)
 {
     return new JobRequestObject("Transaction",
                                 new Dictionary<string, string>
                                     {
                                         {"Preconditions", updateTransaction.ExistencePreconditions},
                                         {"NonexistencePreconditions", updateTransaction.NonexistencePreconditions},
                                         {"Deletes", updateTransaction.DeletePatterns},
                                         {"Inserts", updateTransaction.InsertData},
                                         {"DefaultGraphUri", updateTransaction.DefaultGraphUri}
                                     },
                                 label);
 }
예제 #2
0
 public static void AssertUpdateTransaction(IBrightstarService client, string storeName, UpdateTransactionData txnData)
 {
     var job = client.ExecuteTransaction(storeName, txnData);
     job = WaitForJob(job, client, storeName);
     Assert.IsTrue(job.JobCompletedOk, "Expected update transaction to complete successfully");
 }
 /// <summary>
 /// Execute an update transaction.
 /// </summary>
 /// <param name="storeName">The name of the store to modify</param>
 /// <param name="updateTransaction">The update transaction data</param>
 /// <param name="waitForCompletion">If set to true the method will block until the transaction completes</param>
 /// <param name="label">Optional user-friendly label for the job.</param>
 /// <returns>A <see cref="IJobInfo"/> instance for monitoring the status of the job</returns>
 public IJobInfo ExecuteTransaction(string storeName, UpdateTransactionData updateTransaction,
                                    bool waitForCompletion = true, string label = null)
 {
     try
     {
         if (!waitForCompletion)
         {
             var jobId = _serverCore.ProcessTransaction(storeName, updateTransaction.ExistencePreconditions,
                                                        updateTransaction.NonexistencePreconditions,
                                                        updateTransaction.DeletePatterns,
                                                        updateTransaction.InsertData,
                                                        updateTransaction.DefaultGraphUri, label);
             return GetJobInfo(storeName, jobId.ToString());
         }
         else
         {
             var jobId = _serverCore.ProcessTransaction(storeName, updateTransaction.ExistencePreconditions,
                                                        updateTransaction.NonexistencePreconditions,
                                                        updateTransaction.DeletePatterns,
                                                        updateTransaction.InsertData,
                                                        updateTransaction.DefaultGraphUri, label);
             JobExecutionStatus status = _serverCore.GetJobStatus(storeName, jobId.ToString());
             status.WaitEvent.WaitOne();
             return new JobInfoObject(status);
         }
     }
     catch (Exception ex)
     {
         Logging.LogError(BrightstarEventId.ServerCoreException, "Error Queing Transaction {0} {1} {2}",
                          storeName, updateTransaction.DeletePatterns, updateTransaction.InsertData);
         throw new BrightstarClientException(
             "Error queing transaction in store " + storeName + ". " + ex.Message, ex);
     }
 }
 /// <summary>
 /// Execute an update transaction.
 /// </summary>
 /// <param name="storeName">The name of the store to modify</param>
 /// <param name="updateTransaction">The update transaction data</param>
 /// <param name="label">Optional user-friendly label for the job.</param>
 /// <returns>A <see cref="JobInfo"/> instance for monitoring the status of the job</returns>
 public IJobInfo ExecuteTransaction(string storeName, UpdateTransactionData updateTransaction,
                                    string label = null)
 {
     try
     {
         var jobId = _serverCore.ProcessTransaction(storeName,
                                                    updateTransaction.ExistencePreconditions,
                                                    updateTransaction.NonexistencePreconditions,
                                                    updateTransaction.DeletePatterns,
                                                    updateTransaction.InsertData,
                                                    updateTransaction.DefaultGraphUri,
                                                    label);
         return GetJobInfo(storeName, jobId.ToString());
     }
     catch (Exception ex)
     {
         Logging.LogError(BrightstarEventId.ServerCoreException, "Error Queing Transaction {0} {1} {2}",
                          storeName, updateTransaction.DeletePatterns, updateTransaction.InsertData);
         throw new BrightstarClientException("Error queing transaction in store " + storeName + ". " + ex.Message, ex);
     }
 }
 private void InsertData(String data)
 {
     var updateData = new UpdateTransactionData();
     updateData.InsertData = data;
     Service.ExecuteTransaction(StoreName, updateData);            
 }