private void lstCabinets_KeyDown(object sender, KeyEventArgs e) { if (e.Control && e.KeyCode == Keys.Delete && lstCabinets.SelectedIndex != -1) { if (MessageBox.Show("Вы уверены, что хотите удалить кабинет\n" + ((INamedEntity)lstCabinets.SelectedItem).Name + "\nиз базы?\nОтменить удаление невозможно!", "Удаление кабинета из Базы", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button2) == System.Windows.Forms.DialogResult.No) { return; } try { CabinetList.Remove((ICabinet)lstCabinets.SelectedItem); lstCabinets.DataSource = CabinetList.List.Cast <INamedEntity>().ToList(); } catch (Exception ex) { if (ex.Message.Substring(0, 4) == "1451") { MessageBox.Show("Произошла ошибка удаления. Удаляемый кабинет используется.", "Удаление невозможно.", MessageBoxButtons.OK, MessageBoxIcon.Stop); } else { throw ex; } } } }
private void CabinetListEdit_FormClosing(object sender, FormClosingEventArgs e) { CabinetList.ValidateAndUpdate(); }
private void MessageReceived(Message message) { if (message.ActionCode == MessageSentEvent.RepositoryUpdated) { CabinetList.Clear(); CabsVM.Clear(); IList <Cabinet> cabOut = _dataRepositoryService.GetCabinetsWithTwoTypeDevices <C2000Ethernet, RS485device>(); foreach (Cabinet cabinet in cabOut) { CabinetList.Add(cabinet); CabsVM.Add(new CabinetViewModel(cabinet, _ea));// Fill the TreeView with cabinets } } if (message.ActionCode == MessageSentEvent.UserSelectedItemInTreeView) { object dev = message.AttachedObject; if (IsCheckedByCabinets) { if (dev.GetType() == typeof(RS485device)) // Юзер кликнул на прибор RS485 в дереве { DevicesForProgramming.Clear(); DevicesForProgramming.Add((RS485device)message.AttachedObject); } if (dev.GetType() == typeof(C2000Ethernet)) // Юзер кликнул на прибор RS232 в дереве { DevicesForProgramming.Clear(); DevicesForProgramming.Add((C2000Ethernet)message.AttachedObject); } if (dev.GetType() == typeof(Cabinet)) //Юзер кликнул на шкаф в дереве { DevicesForProgramming.Clear(); Cabinet cab = (Cabinet)message.AttachedObject; foreach (object item in cab.GetAllDevicesList)//GetDevicesList<RS485device>()) { DevicesForProgramming.Add(item); } } DeviceCounter = 0; //Сброс счётчика запрограммированных приборов ибо юзер что то поменял } if (IsCheckedComplexVerification) { if (dev.GetType() == typeof(Cabinet)) //Юзер кликнул на шкаф в дереве { DevicesForProgramming.Clear(); Cabinet cab = (Cabinet)message.AttachedObject; foreach (RS485device item in cab.GetDevicesList <RS485device>()) { DevicesForProgramming.Add(item); } } } } if (message.ActionCode == MessageSentEvent.UpdateRS485SearchProgressBar) { _dispatcher.BeginInvoke(new Action(() => { SearchProgressBar = Convert.ToInt32((byte)message.AttachedObject); })); } }