VixenApplication.Setup.SetupControllersSimple.BuildSelectedControllersAndOutputs C# (CSharp) Метод

BuildSelectedControllersAndOutputs() публичный Метод

public BuildSelectedControllersAndOutputs ( ) : ControllersAndOutputsSet
Результат ControllersAndOutputsSet
        public ControllersAndOutputsSet BuildSelectedControllersAndOutputs()
        {
            ControllersAndOutputsSet result = new ControllersAndOutputsSet();

            foreach (TreeNode node in controllerTree.SelectedTreeNodes) {
                IControllerDevice controller = node.Tag as IControllerDevice;
                int outputIndex = -1;

                if (controller == null) {
                    if (node.Tag is int) {
                        outputIndex = (int) node.Tag;
                        controller = node.Parent.Tag as IControllerDevice;
                        if (controller == null) {
                            Logging.Error("node parent is not a controller: " + node.Name);
                        }
                    }
                }

                if (controller != null) {
                    HashSet<int> selectedOutputs;
                    result.TryGetValue(controller, out selectedOutputs);
                    if (selectedOutputs == null) {
                        selectedOutputs = new HashSet<int>();
                        result[controller] = selectedOutputs;
                    }

                    // if there wasn't a specific output that this was about, add all outputs for the controller
                    if (outputIndex < 0) {
                        for (int i = 0; i < controller.OutputCount; i++) {
                            selectedOutputs.Add(i);
                        }
                    } else {
                        selectedOutputs.Add(outputIndex);
                    }
                } else {
                    Logging.Error("can't figure out what controller the node maps to: " + node.Name);
                }
            }

            return result;
        }