/// <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)); }
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" : "")); } }
//// //// //// 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."); } }
private void OnScheduleChanged() { ScheduleChanged?.Invoke(this, new ScheduleChangedEventArgs(EventCount)); }
/// <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)); }
/// <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)); }