public override void Delete(ref Soap.TransactionFramework.TransactionChain chain)
        {
            if (Facade != null)
            {
                AddRelationshipTransactionLink addRelationshipTransaction = Facade.TransactionOrigin as AddRelationshipTransactionLink;

                if (addRelationshipTransaction != null)
                {
                    if (addRelationshipTransaction.TransactionStatus == ServerStatus.ProcessingClient)
                    {
                        DeleteRelationshipTransactionLink deleteTransaction = new DeleteRelationshipTransactionLink();

                        deleteTransaction.DomainId     = DomainId;
                        deleteTransaction.MapManager   = MapManager;
                        deleteTransaction.Relationship = Facade;

                        chain.AddTransaction(deleteTransaction);

                        return;
                    }
                }
            }

            DelayedActions.Enqueue(new DelayedRelationshipAction()
            {
                Action = TransactionActionType.Deleted
            });
        }
        public override void Update(RelationshipType relationshipType, ref Soap.TransactionFramework.TransactionChain chain)
        {
            if (Facade != null)
            {
                AddRelationshipTransactionLink addRelationshipTransaction = Facade.TransactionOrigin as AddRelationshipTransactionLink;

                if (addRelationshipTransaction != null)
                {
                    if (addRelationshipTransaction.TransactionStatus == ServerStatus.ProcessingClient)
                    {
                        addRelationshipTransaction.RelationshipType = relationshipType;

                        return;
                    }
                }
            }

            DelayedActions.Enqueue(new DelayedRelationshipAction()
            {
                Action = TransactionActionType.TypeUpdated, RelationshipType = relationshipType
            });
        }
        public override void ConnectNode(ConnectionType connectionType, INode node, ref Soap.TransactionFramework.TransactionChain chain)
        {
            base.ConnectNode(connectionType, node, ref chain);

            if (Facade != null)
            {
                AddRelationshipTransactionLink addRelationshipTransaction = Facade.TransactionOrigin as AddRelationshipTransactionLink;

                if (addRelationshipTransaction != null)
                {
                    if (addRelationshipTransaction.TransactionStatus == ServerStatus.ProcessingClient)
                    {
                        addRelationshipTransaction.AddNode(connectionType, node);

                        return;
                    }
                }
            }

            DelayedActions.Enqueue(new DelayedRelationshipAction()
            {
                Action = TransactionActionType.Updated, ConnectionType = connectionType, Node = node
            });
        }