public void CreateTransactions(ref TransactionChain chain) { DeleteNodeTransactionLink deleteTransaction = null; UpdateNodeTransactionLink updateTransaction = null; foreach (DelayedNodeAction action in QueuedActions) { switch (action.Action) { case TransactionActionType.Deleted: deleteTransaction = CreateNodeDeletionTransaction(action); if (deleteTransaction != null) { chain.AddTransaction(deleteTransaction); } return; case TransactionActionType.TypeUpdated: updateTransaction = CreateNodeUpdatedTransaction(action); break; default: break; } } if (updateTransaction != null) { chain.AddTransaction(updateTransaction); } }
public override void Delete(ref Soap.TransactionFramework.TransactionChain chain) { if (Facade != null) { AddNodeTransactionLink addNodeTransaction = Facade.TransactionOrigin as AddNodeTransactionLink; if (addNodeTransaction != null) { if (addNodeTransaction.TransactionStatus == ServerStatus.ProcessingClient) { DeleteNodeTransactionLink deleteTransaction = new DeleteNodeTransactionLink(); deleteTransaction.DomainId = DomainId; deleteTransaction.MapManager = MapManager; deleteTransaction.Node = Facade; chain.AddTransaction(deleteTransaction); return; } } } DelayedActions.Enqueue(new DelayedNodeAction() { Action = TransactionActionType.Deleted }); }
private DeleteNodeTransactionLink CreateNodeDeletionTransaction(DelayedNodeAction action) { DeleteNodeTransactionLink deleteTransaction = null; if (NodeContext.Facade != null && NodeContext.Facade.IsConcrete) { deleteTransaction = new DeleteNodeTransactionLink(); deleteTransaction.DomainId = NodeContext.DomainId; deleteTransaction.MapManager = NodeContext.MapManager; deleteTransaction.Node = NodeContext.Facade; } return(deleteTransaction); }