Esempio n. 1
0
        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);
 }
Esempio n. 4
0
 internal MetalRouteContext(IMetalRoute parentRoute, IEnumerable <string> parentSegments, IEnumerable <string> currentSegments)
 {
     ParentRoute     = parentRoute;
     ParentSegments  = parentSegments;
     CurrentSegments = currentSegments;
 }