상속: ISoapTransactionLink, ISoapTransactionLinkExecutor
        private TransactionFramework.UpdateRelationshipTransactionLink CreateRelationshipUpdatedTransaction(DelayedRelationshipAction action)
        {
            TransactionFramework.UpdateRelationshipTransactionLink updateTransaction = null;

            if (RelationshipContext.Facade != null && RelationshipContext.Facade.IsConcrete)
            {
                updateTransaction = new TransactionFramework.UpdateRelationshipTransactionLink();
                updateTransaction.DomainId = RelationshipContext.DomainId;
                updateTransaction.MapManager = RelationshipContext.MapManager;
                updateTransaction.Relationship = RelationshipContext.Facade;
                updateTransaction.RelationshipType = null;
            }

            return updateTransaction;
        }
예제 #2
0
        public override void Update(Proxy.RelationshipType relationshipType, ref TransactionFramework.TransactionChain chain)
        {
            RelationshipType = relationshipType;

            if (LastUpdateRelationship != null && LastUpdateRelationship.TransactionStatus == TransactionFramework.ServerStatus.ProcessingClient)
            {
                LastUpdateRelationship.RelationshipType = relationshipType;
            }
            else
            {
                LastUpdateRelationship = CreateNewUpdateRelationship();
                LastUpdateRelationship.RelationshipType = relationshipType;
                chain.AddTransaction(LastUpdateRelationship);
            }

            chain.TransactionExecuting += OnTransactionExecuting;
        }
예제 #3
0
 private void OnTransactionExecuting(object sender, EventArgs e)
 {
     LastUpdateRelationship = null;
 }
예제 #4
0
        public override void ConnectNode(Proxy.ConnectionType connectionType, Proxy.INode node, ref TransactionFramework.TransactionChain chain)
        {
            base.ConnectNode(connectionType, node, ref chain);

            if (LastUpdateRelationship != null && LastUpdateRelationship.TransactionStatus == TransactionFramework.ServerStatus.ProcessingClient)
            {
                LastUpdateRelationship.AddNode(connectionType, node);
            }
            else
            {
                LastUpdateRelationship = CreateNewUpdateRelationship();
                LastUpdateRelationship.AddNode(connectionType, node);
                chain.AddTransaction(LastUpdateRelationship);
            }

            chain.TransactionExecuting += OnTransactionExecuting;
        }
예제 #5
0
        private TransactionFramework.UpdateRelationshipTransactionLink CreateNewUpdateRelationship()
        {
            TransactionFramework.UpdateRelationshipTransactionLink updateRelationship = new TransactionFramework.UpdateRelationshipTransactionLink();
            updateRelationship.DomainId = DomainId;
            updateRelationship.MapManager = MapManager;
            updateRelationship.Relationship = this;
            updateRelationship.RelationshipType = null;

            return updateRelationship;
        }