diff --git a/src/PepperDash.Essentials.Core/Routing/RouteDescriptorCollection.cs b/src/PepperDash.Essentials.Core/Routing/RouteDescriptorCollection.cs index 9cf61f77..f75196a2 100644 --- a/src/PepperDash.Essentials.Core/Routing/RouteDescriptorCollection.cs +++ b/src/PepperDash.Essentials.Core/Routing/RouteDescriptorCollection.cs @@ -1,4 +1,5 @@ -using PepperDash.Core; +using System; +using PepperDash.Core; using Serilog.Events; using System.Collections.Generic; using System.Linq; @@ -27,6 +28,8 @@ public class RouteDescriptorCollection private readonly List RouteDescriptors = new List(); + public event EventHandler RouteDescriptorCollectionChanged; + /// /// Gets an enumerable collection of all RouteDescriptors in this collection. /// @@ -70,6 +73,8 @@ public class RouteDescriptorCollection descriptor?.InputPort?.Key ?? "auto", descriptor?.SignalType); RouteDescriptors.Add(descriptor); + + RouteDescriptorCollectionChanged?.Invoke(this, EventArgs.Empty); } /// @@ -110,7 +115,10 @@ public class RouteDescriptorCollection ? GetRouteDescriptorForDestination(destination) : GetRouteDescriptorForDestinationAndInputPort(destination, inputPortKey); if (descr != null) + { RouteDescriptors.Remove(descr); + RouteDescriptorCollectionChanged?.Invoke(this, EventArgs.Empty); + } Debug.LogMessage(LogEventLevel.Information, "Found route descriptor {routeDescriptor}", destination, descr);