internal MetalRouteContext MoveCapturedToParent(IMetalRoute parentRoute, IEnumerable <string> capturedSegments) { var currentCapturedSegments = CurrentSegments.TakeWhile((cseg, idx) => capturedSegments.ElementAtOrDefault(idx).EqualsIgnoreCase(cseg)); if (currentCapturedSegments is null || !currentCapturedSegments.Any()) { return(this); } return(new MetalRouteContext( parentRoute, ParentSegments.Concat(currentCapturedSegments), CurrentSegments.Skip(currentCapturedSegments.Count()) )); }
public void RegisterChildRoute(IMetalRoute route) { Logger.LogDebug("{MetalRouter} registering child route for segments '{Segments}'", nameof(MetalRouter), (route as SegmentRoute)?.Segments); _registeredRoutes.Add(route); //Refresh(_navigationInterceptionEnabled, skipUnhandled: true); }
public void RegisterChildRoute(IMetalRoute route) { _registeredRoutes.Add(route); }
internal MetalRouteContext(IMetalRoute parentRoute, IEnumerable <string> parentSegments, IEnumerable <string> currentSegments) { ParentRoute = parentRoute; ParentSegments = parentSegments; CurrentSegments = currentSegments; }