internal void SetVerbosity()

in src/Sarif.Viewer.VisualStudio.Core/Models/AnalysisStepNode.cs [380:428]


        internal void SetVerbosity(ThreadFlowLocationImportance importance)
        {
            Visibility visibility = Visibility.Visible;
            ThreadFlowLocationImportance myImportance = this.Location?.Importance ?? ThreadFlowLocationImportance.Unimportant;

            switch (importance)
            {
                case ThreadFlowLocationImportance.Essential:
                    if (myImportance != ThreadFlowLocationImportance.Essential)
                    {
                        visibility = Visibility.Collapsed;
                    }

                    break;
                case ThreadFlowLocationImportance.Important:
                    if (myImportance == ThreadFlowLocationImportance.Unimportant)
                    {
                        visibility = Visibility.Collapsed;
                    }

                    break;
                default:
                    visibility = Visibility.Visible;
                    break;
            }

            if (visibility == Visibility.Visible)
            {
                AnalysisStepNode current = this;

                while (current != null)
                {
                    current.Visibility = Visibility.Visible;
                    current = current.Parent;
                }
            }
            else
            {
                this.Visibility = Visibility.Collapsed;
            }

            if (this.Children != null)
            {
                foreach (AnalysisStepNode child in this.Children)
                {
                    child.SetVerbosity(importance);
                }
            }
        }