/// <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;
        }
Beispiel #2
0
        /// <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);
                }
            }
        }
Beispiel #3
0
        /// <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
                {
                }
            }
        }