private void butOK_Click(object sender, System.EventArgs e) { if (listOp.SelectedIndices.Count == 0) { MsgBox.Show(this, "Please select at least one operatory first."); return; } try{ _schedCur.StartTime = DateTime.Parse(comboStart.Text).TimeOfDay; _schedCur.StopTime = DateTime.Parse(comboStop.Text).TimeOfDay; } catch { MsgBox.Show(this, "Incorrect time format"); return; } _schedCur.Note = textNote.Text; _schedCur.BlockoutType = _listBlockoutCatDefs[listType.SelectedIndex].DefNum; _schedCur.Ops = new List <long>(); for (int i = 0; i < listOp.SelectedIndices.Count; i++) { _schedCur.Ops.Add(_listOps[listOp.SelectedIndices[i]].OperatoryNum); } List <Schedule> listOverlapSchedules; if (Schedules.Overlaps(_schedCur, out listOverlapSchedules)) { if (!PrefC.GetBool(PrefName.ReplaceExistingBlockout) || !Schedules.IsAppointmentBlocking(_schedCur.BlockoutType)) { MsgBox.Show(this, "Blockouts not allowed to overlap."); return; } if (!MsgBox.Show(this, MsgBoxButtons.OKCancel, "Creating this blockout will cause blockouts to overlap. Continuing will delete the existing " + "blockout(s). Continue?")) { return; } Schedules.DeleteMany(listOverlapSchedules.Select(x => x.ScheduleNum).ToList()); } try{ if (IsNew) { Schedules.Insert(_schedCur, true); Schedules.BlockoutLogHelper(BlockoutAction.Create, _schedCur); } else { Schedules.Update(_schedCur); Schedules.BlockoutLogHelper(BlockoutAction.Edit, _schedCur); } } catch (Exception ex) { MessageBox.Show(ex.Message); return; } DialogResult = DialogResult.OK; }