void OnSubmitBulkOperationCompleted(object sender, BOCCompletedEventArgs e) { if (e.UserState != this) { // This event is for a different object so don't execute. return; } TransactionStatus = ServerStatus.TransactionReceived; // The following lines must be done so that the transaction isn't executed again. ServiceProxy.BOCCompleted -= OnSubmitBulkOperationCompleted; if (e.Error != null) { TransactionStatus = ServerStatus.TransactionFailed; if (InternalTransactionFailed != null) { InternalTransactionFailed(this, e); } return; } OriginChain.FillBulkOperations(e.DecompressedResult); Service.OPS newBulkOperationsSet = new Service.OPS(); newBulkOperationsSet.O = new System.Collections.ObjectModel.ObservableCollection <object>(); ISoapTransactionLinkExecutor executor = _firstLink as ISoapTransactionLinkExecutor; if (!_onCompletedBound) { executor.TransactionFailed += OnTransactionFailed; executor.TransactionCompleted += OnTransactionCompleted; _onCompletedBound = true; } TransactionStatus = ServerStatus.TransactionExecuting; DebugLogger.Instance.LogMsg("Executing add node transaction. ResponseParameter Id - '{0}'; ClientId - '{1}';", ResponseParameter.I, _inProcessResponse.ClientId); executor.ExecuteBulkTransactions(SessionId, ServiceProxy, ref newBulkOperationsSet); }
void OnSubmitBulkOperationCompleted(object sender, BOCCompletedEventArgs e) { ServiceProxy.BOCCompleted -= OnSubmitBulkOperationCompleted; if (e.Error != null) { TransactionStatus = ServerStatus.TransactionFailed; if (InternalTransactionFailed != null) { InternalTransactionFailed(this, e); } return; } OriginChain.FillBulkOperations(e.DecompressedResult); ISoapTransactionLinkExecutor executor = this; executor.ExecuteTransaction(SessionId, ServiceProxy); }