DependencyCollection ISoapTransactionLinkExecutor.UpdateDependencies()
        {
            ISoapTransactionLinkExecutor executor = (ISoapTransactionLinkExecutor)this;

            foreach (KeyValuePair <Proxy.ConnectionType, Proxy.INode> nodePairs in ProxyNodeConnections)
            {
                Proxy.IFacade iFacadeNode = nodePairs.Value as Proxy.IFacade;

                if (iFacadeNode != null)
                {
                    if (!iFacadeNode.IsConcrete)
                    {
                        FacadeNode facadeNode = iFacadeNode as FacadeNode;
                        InProcess.InProcessNode inProcessNode = facadeNode.BaseNode as InProcess.InProcessNode;

                        if (inProcessNode != null && inProcessNode.OriginLink != null && inProcessNode.OriginLink.OriginChain != OriginChain)
                        {
                            executor.Dependencies.AddFacade(iFacadeNode);
                        }
                    }
                }
            }

            return(executor.Dependencies);
        }
        public void AddFacade(Proxy.IFacade facade)
        {
            if (!facade.IsConcrete && !RegisteredFacades.ContainsKey(facade))
            {
                RegisteredFacades[facade] = false;

                if (_dependencyCount == null)
                {
                    _dependencyCount = 1;
                }
                else
                {
                    _dependencyCount++;
                }

                facade.BaseCured += OnFacadeCured;
            }
        }
        private void OnFacadeCured(object sender, EventArgs e)
        {
            Proxy.IFacade facade = sender as Proxy.IFacade;

            if (facade != null)
            {
                if (RegisteredFacades.ContainsKey(facade))
                {
                    RegisteredFacades[facade] = true;
                    _dependencyCount--;

                    if (_dependencyCount == 0)
                    {
                        if (FacadesCompleted != null)
                        {
                            FacadesCompleted(this, new EventArgs());
                        }
                    }
                }
            }
        }
        DependencyCollection ISoapTransactionLinkExecutor.UpdateDependencies()
        {
            ISoapTransactionLinkExecutor executor = (ISoapTransactionLinkExecutor)this;

            Proxy.IFacade iFacadeNode = Node as Proxy.IFacade;

            if (iFacadeNode != null)
            {
                if (!iFacadeNode.IsConcrete)
                {
                    FacadeNode facadeNode = iFacadeNode as FacadeNode;
                    InProcess.InProcessNode inProcessNode = facadeNode.BaseNode as InProcess.InProcessNode;

                    if (inProcessNode != null && inProcessNode.OriginLink != null && inProcessNode.OriginLink.OriginChain != OriginChain)
                    {
                        executor.Dependencies.AddFacade(iFacadeNode);
                    }
                }
            }

            return(executor.Dependencies);
        }
Exemple #5
0
        DependencyCollection ISoapTransactionLinkExecutor.UpdateDependencies()
        {
            ISoapTransactionLinkExecutor executor = (ISoapTransactionLinkExecutor)this;

            Proxy.IFacade iFacadeMetadata = Metadata as Proxy.IFacade;

            if (iFacadeMetadata != null)
            {
                if (!iFacadeMetadata.IsConcrete)
                {
                    Proxy.FacadeMetadataSet     facadeMetadata    = iFacadeMetadata as Proxy.FacadeMetadataSet;
                    InProcess.InProcessMetadata inProcessMetadata = facadeMetadata.BaseMetadata as InProcess.InProcessMetadata;

                    if (inProcessMetadata != null && inProcessMetadata.OriginLink != null && inProcessMetadata.OriginLink.OriginChain != OriginChain)
                    {
                        executor.Dependencies.AddFacade(iFacadeMetadata);
                    }
                }
            }

            return(executor.Dependencies);
        }
        DependencyCollection ISoapTransactionLinkExecutor.UpdateDependencies()
        {
            ISoapTransactionLinkExecutor executor = (ISoapTransactionLinkExecutor)this;

            Proxy.IFacade iFacadeRelationship = Relationship as Proxy.IFacade;

            if (iFacadeRelationship != null)
            {
                if (!iFacadeRelationship.IsConcrete)
                {
                    FacadeRelationship facadeRelationship = iFacadeRelationship as FacadeRelationship;
                    InProcess.InProcessRelationship inProcessRelationship = facadeRelationship.BaseRelationship as InProcess.InProcessRelationship;

                    if (inProcessRelationship != null && inProcessRelationship.OriginLink != null && inProcessRelationship.OriginLink.OriginChain != OriginChain)
                    {
                        executor.Dependencies.AddFacade(iFacadeRelationship);
                    }
                }
            }

            return(executor.Dependencies);
        }