private void SignalboxHoursSetAddedHandler(object sender, SignalboxHoursSetEventArgs e)
 {
     if (e.HoursSet != null)
     {
         AddSignalboxHoursToView(e.HoursSet);
     }
 }
 private void SignalboxHoursSetRemoveHandler(object sender, SignalboxHoursSetEventArgs eventArgs)
 {
     for (int i = 0; i < dgvHours.Rows.Count; ++i)
     {
         if (dgvHours[_signalboxHoursIdColumn, i].Value as string == eventArgs.HoursSet.Id)
         {
             dgvHours.Rows.RemoveAt(i);
             return;
         }
     }
 }
        private void SignalboxHoursSetModifiedHandler(object sender, SignalboxHoursSetEventArgs eventArgs)
        {
            foreach (var r in dgvHours.Rows)
            {
                if (!(r is DataGridViewRow row) || row.Cells[_signalboxHoursIdColumn].Value as string != eventArgs.HoursSet.Id)
                {
                    continue;
                }

                row.Cells[_signalboxHoursCategoryColumn].Value = eventArgs.HoursSet.Category;
                foreach (var hours in eventArgs.HoursSet.Hours.Values)
                {
                    if (hours.StartTime != null && hours.EndTime != null)
                    {
                        row.Cells[_signalboxHoursColumnMap[hours.Signalbox.Id]].Value = hours.ToString(Model.Options.ClockType);
                    }
                }
            }
        }
 private void SignalboxHoursSetChangedHandler(object sender, SignalboxHoursSetEventArgs eventArgs)
 {
     OnTimetableDocumentChanged();
 }