Exemple #1
0
 /// <summary>Add a time range to the schedule</summary>
 public void Add(Range sched)
 {
     m_ranges.Add(sched);
     m_events.Add(sched.Beg);
     m_events.Add(sched.End);
     ScheduleChanged?.Invoke(this, new ScheduleChangedEventArgs(ScheduleChangedEventArgs.EChg.Added, sched));
 }
Exemple #2
0
        private void OnScheduleChanged(Vehicle vehicle, RootTask task, bool minorChange = false, bool notifyRoute = false)
        {
            if (notifyRoute && vehicle.Route != null)
            {
                ImmutableList <Vehicle> vehicles = vehicle.Route.Vehicles;
                for (int i = 0; i < vehicles.Count; i++)
                {
                    ScheduleChanged?.Invoke(vehicles[i], task, minorChange);
//                    NotificationUtils.ShowVehicleHint(vehicles[i], "OnScheduleChanged" + (minorChange ? " minor" : ""));
                }
            }
            else
            {
                ScheduleChanged?.Invoke(vehicle, task, minorChange);
//                NotificationUtils.ShowVehicleHint(vehicle, "OnScheduleChanged" + (minorChange ? " minor" : ""));
            }
        }
Exemple #3
0
        ////
        ////
        ////

        private static void RaiseEvent(ScheduleManager.ScheduleChangedEvents type)
        {
            if (base_.TODAY_SCHEDULE.Enable)
            {
                d.write($"[ScheduleWatcher] {type.ToString()} raising");

                if (ScheduleChanged == null)
                {
                    Thread.Sleep(base_.SCHEDULE_WATCHER_EVENT_DECLARE_DELAY);
                }
                ScheduleChanged.Invoke(new ScheduleChangedEventArgs(type));
            }
            else
            {
                d.write($"[ScheduleWatcher] was to raise {type.ToString()}, but today's not display day. ignoring request.");
            }
        }
Exemple #4
0
 private void OnScheduleChanged()
 {
     ScheduleChanged?.Invoke(this, new ScheduleChangedEventArgs(EventCount));
 }
Exemple #5
0
 /// <summary>Reset the schedule to empty</summary>
 public void Clear()
 {
     m_events.Clear();
     m_ranges.Clear();
     ScheduleChanged?.Invoke(this, new ScheduleChangedEventArgs(ScheduleChangedEventArgs.EChg.Cleared, null));
 }
Exemple #6
0
 /// <summary>Remove a time range from the schedule</summary>
 public void Remove(Range sched)
 {
     m_ranges.Remove(sched);
     m_events.RemoveAll(x => x.Owner == sched);
     ScheduleChanged?.Invoke(this, new ScheduleChangedEventArgs(ScheduleChangedEventArgs.EChg.Removed, sched));
 }