SilverlightMappingToolBasic.UI.SuperGraph.View.SuperGraphControl.ContextMenuOnCommitCollapseStatesClicked C# (CSharp) Method

ContextMenuOnCommitCollapseStatesClicked() private method

private ContextMenuOnCommitCollapseStatesClicked ( object sender, CommitCollapseStatesEventArgs e ) : void
sender object
e SilverlightMappingToolBasic.UI.SuperGraph.View.ContextMenu.CommitCollapseStatesEventArgs
return void
        private void ContextMenuOnCommitCollapseStatesClicked(object sender, CommitCollapseStatesEventArgs e)
        {
            var pendingVisibilityNodes = new List<Node>();
            var pendingCollapseStateNodes = new List<Node>();
            foreach (NodeControl nodeControl in GetNodeControls())
            {
                if (e.Group == PermissionLevel.Author)
                {
                    if (nodeControl.ViewModelNode.IsAuthorCollapseStateDirty)
                    {
                        pendingCollapseStateNodes.Add(nodeControl.ViewModelNode);
                        nodeControl.ViewModelNode.IsAuthorCollapseStateDirty = false;
                    }

                    if (nodeControl.ViewModelNode.IsAuthorVisibilityDirty)
                    {
                        pendingVisibilityNodes.Add(nodeControl.ViewModelNode);
                        nodeControl.ViewModelNode.IsAuthorVisibilityDirty = false;
                    }
                }
                else
                {
                    if (nodeControl.ViewModelNode.IsViewerCollapseStateDirty ||
                            nodeControl.ViewModelNode.State != nodeControl.ViewModelNode.ViewerCollapseState)
                    {
                        pendingCollapseStateNodes.Add(nodeControl.ViewModelNode);
                        nodeControl.ViewModelNode.IsViewerCollapseStateDirty = false;
                    }

                    if (nodeControl.ViewModelNode.IsViewerVisibilityDirty ||
                        nodeControl.ViewModelNode.Visibility != nodeControl.ViewModelNode.ViewerVisibility)
                    {
                        pendingVisibilityNodes.Add(nodeControl.ViewModelNode);
                        nodeControl.ViewModelNode.IsViewerVisibilityDirty = false;
                    }
                }
            }
            IoC.GetInstance<ISuperGraphNodeBatchOperations>()
                .CommitCollapseStates(pendingVisibilityNodes, pendingCollapseStateNodes, e.Group);
        }
SuperGraphControl