示例#1
0
        //добавление компьютера
        private void BAddComputer_Click(object sender, EventArgs e)
        {
            //вызов диалогового окна создания компьютера
            Computer             computer;
            ComputerCreatingForm computerCreatingForm = new ComputerCreatingForm();

            computerCreatingForm.ShowDialog();

            //при подтверждении пользователем - создать новый компьютер, добавить в список менеджера и дерево в интерфейсе
            if (computerCreatingForm.DialogResult == DialogResult.OK)
            {
                computer = computerCreatingForm.GetComputer();
                if (manager.AddComputer(computer))
                {
                    TreeNode node = new TreeNode(computer.ToString(), 0, 0);
                    computerTree.Nodes.Add(node);

                    StatusUpdate();
                }
                else
                {
                    MessageBox.Show("Компьютер с таким именем уже существует!",
                                    "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
            }
        }
示例#2
0
        //замена компьютера
        private void ComputerTree_DoubleClick(object sender, EventArgs e)
        {
            //если выделен узел и он не является устройством
            if (computerTree.SelectedNode != null && computerTree.SelectedNode.Parent == null)
            {
                //получение объекта из выбранного узла
                Computer computer = (Computer)computerTree.SelectedNode.Text;
                //узел выбранного компьютера
                TreeNode selected = computerTree.SelectedNode;

                //вызов диалогового окна создания компьютера, с установленными значениями полей
                ComputerCreatingForm computerCreatingForm = new ComputerCreatingForm(computer);
                computerCreatingForm.ShowDialog();

                for (int i = 0; i < manager.ComputerCount; i++)
                {
                    if (manager[i].Equals(computer))
                    {
                        computer = manager[i];
                        break;
                    }
                }

                //при подтверждении пользователем - заменить устройство
                if (computerCreatingForm.DialogResult == DialogResult.OK)
                {
                    Computer newComputer = computerCreatingForm.GetComputer();

                    //коллекция подключенных устройств, которые надо будет отключить при замене компа
                    var devicesToDisconnect = new List <TreeNode>();

                    //собираем устройства для отключения
                    foreach (TreeNode a in selected.Nodes)
                    {
                        Device deviceToDisconnect = (Device)a.Text;

                        // /**/
                        for (int i = 0; i < computer.DevicesCount; i++)
                        {
                            if (computer[i].Equals(deviceToDisconnect))
                            {
                                deviceToDisconnect = computer[i];
                                break;
                            }
                        }

                        //если устройство отключается, добавляем его в список устройств
                        if (manager.DisconnectDevice(computer, deviceToDisconnect))
                        {
                            devicesToDisconnect.Add(a);
                            LBDevices.Items.Add(deviceToDisconnect);
                        }
                    }

                    //убираем накопленные устройства из коллекции
                    foreach (TreeNode a in devicesToDisconnect)
                    {
                        a.Remove();
                    }

                    //заменяем компьютер
                    if (manager.ChangeComputer(computer, newComputer))
                    {
                        computerTree.Nodes.Remove(selected);

                        TreeNode node = new TreeNode(newComputer.ToString(), 0, 0);
                        computerTree.Nodes.Add(node);

                        StatusUpdate();
                    }
                    else
                    {
                        MessageBox.Show("Компьютер с таким именем уже существует!",
                                        "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }
                }
            }
        }