/// <summary> /// Конструктор редактирования позиции расписания обслуживания хранилища данных /// </summary> /// <param name="sanMaintenanceShedule">Выбранная позиция расписания обслуживания хранилища данных</param> public EditScheduleItem(SAN_MaintenanceShedule sanMaintenanceShedule) : this(ScheduleEditType.Server) { _sanMaintenanceShedule = sanMaintenanceShedule; UnSubscribeEvents(); SetMinimumValuesToDefault(); dateTimePicker_Begin.Value = _sanMaintenanceShedule.BeginPeriod; numericUpDown_BeginHours.Value = _sanMaintenanceShedule.BeginPeriod.Hour; numericUpDown_BeginMinutes.Value = _sanMaintenanceShedule.BeginPeriod.Minute; dateTimePicker_End.Value = _sanMaintenanceShedule.EndPeriod; numericUpDown_EndHours.Value = _sanMaintenanceShedule.EndPeriod.Hour; numericUpDown_EndMinutes.Value = _sanMaintenanceShedule.EndPeriod.Minute; CalculateDuration(); SubscribeEvents(); _formMode = FormMode.Edit; }
/// <summary> /// Обработчик события нажатия клавиши мыши на элемент главного меню, /// который осуществляет удаление выбранной позиции расписания обслуживания /// </summary> private async void удалитьВыбраннуюПозициюToolStripMenuItem_Click(object sender, EventArgs e) { if (CurrentScheduleItem == null) { MessageBox.Show("Выберите позицию из списка для ее удаленияя!", "Предупреждение", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } if (CurrentScheduleItem.BeginDate <= DateTime.Now) { MessageBox.Show("Удалять можно только запланированные позиции!", "Предупреждение", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } Server_MaintenanceShedule selectedServerMaintenanceShedule = null; SAN_MaintenanceShedule selectedSanMaintenanceShedule = null; try { switch (_scheduleEditType) { case ScheduleEditType.Server: selectedServerMaintenanceShedule = await _ctx.GetServerMaintenanceSheduleByID(CurrentScheduleItem.Id); break; case ScheduleEditType.SAN: selectedSanMaintenanceShedule = await _ctx.GetSANMaintenanceSheduleByID(CurrentScheduleItem.Id); break; } } catch { MessageBox.Show("Не удалось получить информацию о выбранной позиции расписания обслуживания", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } var result = MessageBox.Show("Выбранная позиция будет удалена! Продолжить?", "Удаление позиции расписания обслуживания", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation); if (result == DialogResult.Yes) { try { switch (_scheduleEditType) { case ScheduleEditType.Server: await _ctx.DeleteSelectedServiceScheduleMaintenance(selectedServerMaintenanceShedule); break; case ScheduleEditType.SAN: await _ctx.DeleteSelectedSANScheduleMaintenance(selectedSanMaintenanceShedule); break; } BindCollection(); try { var ownForm = Owner as EquipmentIdleMenu; ownForm.UpdateServerIdleItems(); } catch { } } catch { MessageBox.Show("Произошла ошибка при удалении выбранной позиции расписания обслуживания!", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } } }
/// <summary> /// Обработчик события нажатия клавиши мыши на элемент главного меню, /// который выполняет переход на форму редактирования выбранной позиции расписания обслуживания /// </summary> private async void редактироватьВыбраннуюПозициюToolStripMenuItem_Click(object sender, EventArgs e) { if (CurrentScheduleItem == null) { MessageBox.Show("Выберите позицию из списка для ее редактирования!", "Предупреждение", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } if (CurrentScheduleItem.BeginDate <= DateTime.Now) { MessageBox.Show("Редактировать можно только запланированные позиции!", "Предупреждение", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return; } Server_MaintenanceShedule selectedServerMaintenanceShedule = null; SAN_MaintenanceShedule selectedSanMaintenanceShedule = null; try { switch (_scheduleEditType) { case ScheduleEditType.Server: selectedServerMaintenanceShedule = await _ctx.GetServerMaintenanceSheduleByID(CurrentScheduleItem.Id); break; case ScheduleEditType.SAN: selectedSanMaintenanceShedule = await _ctx.GetSANMaintenanceSheduleByID(CurrentScheduleItem.Id); break; } } catch { MessageBox.Show("Не удалось получить информацию о выбранной позиции расписания обслуживания", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } EditScheduleItem editScheduleItem = null; switch (_scheduleEditType) { case ScheduleEditType.Server: editScheduleItem = new EditScheduleItem(selectedServerMaintenanceShedule); break; case ScheduleEditType.SAN: editScheduleItem = new EditScheduleItem(selectedSanMaintenanceShedule); break; } if (editScheduleItem.ShowDialog() == DialogResult.OK) { BindCollection(); try { var ownForm = Owner as EquipmentIdleMenu; ownForm.UpdateServerIdleItems(); } catch { } } }