Exemplo n.º 1
0
        private bool HasCycle(PersistentList <IFeatureToggle> visitedToggles = null)
        {
            visitedToggles = visitedToggles == null
                ? new PersistentList <IFeatureToggle>(this, Enumerable.Empty <IFeatureToggle>())
                : new PersistentList <IFeatureToggle>(this, visitedToggles);

            foreach (var toggle in dependencies)
            {
                // Verify that this node has not been visited before
                if (visitedToggles.Contains(toggle))
                {
                    return(true);
                }

                if ((toggle is DependencyToggle dependencyToggle) && dependencyToggle.HasCycle(visitedToggles))
                {
                    return(true);
                }
            }

            return(false);
        }
Exemplo n.º 2
0
        private bool HasCycle(PersistentList<IFeatureToggle> visitedToggles = null)
        {
            visitedToggles = visitedToggles == null
                ? new PersistentList<IFeatureToggle>(this, Enumerable.Empty<IFeatureToggle>())
                : new PersistentList<IFeatureToggle>(this, visitedToggles);

            foreach (var toggle in dependencies)
            {
                // Verify that this node has not been visited before
                if (visitedToggles.Contains(toggle))
                {
                    return true;
                }

                var dependencyToggle = toggle as DependencyToggle;

                if ((dependencyToggle != null) && dependencyToggle.HasCycle(visitedToggles))
                {
                    return true;
                }
            }

            return false;
        }