/// <summary> /// /// </summary> public RouteRegistry(List <Route> InRoutes = null, TagRegistry InTagRegistry = null) { TagRegistry = InTagRegistry; TagRegistry.TagDeleted += (Guid Id) => { bool TagsRemoved = false; for (int i = 0; i < Routes.Count; i++) { Route route = Routes[i]; if (route.SourceTagId == Id || route.DestinationTagId == Id) { RouteDeleted?.Invoke(route.Id); Routes.RemoveAt(i); i--; TagsRemoved = true; } } if (TagsRemoved) { RoutesUpdated?.Invoke(); } }; if (InRoutes != null) { Routes = InRoutes; } }
/// <summary> /// /// </summary> /// <param name="TagId"></param> public void DeleteRoute(Guid TagId) { Route Tag = GetRouteById(TagId); if (Tag == null) { return; } Routes.Remove(Tag); RouteDeleted?.Invoke(TagId); RoutesUpdated?.Invoke(); }