/// <summary> /// Construct a template based convention router /// </summary> /// <param name="routerBuilder"></param> /// <param name="format">Route name using template string where {vm} is the class name without postfix, /// {namespace} is the namespace, and {id} is the id provided in the register method /// </param> /// <param name="lowerPath">true to use class name in lower case</param> /// <param name="postFix">Class name post fix to be discarded- default to "ViewModel"</param> internal ConventionRouter(IRouterBuilder routerBuilder, string format, bool lowerPath = true, string postFix = null) { _RouterBuilder = routerBuilder; var templateConvention = new TemplateConvention(format, lowerPath, postFix); _RouteInformationGetter = templateConvention.GetRouteInformation; }
/// <summary> /// Build the route. Add different logic here if needed. /// </summary> /// <param name="routeBuilder"></param> private static void BuildRoutes(IRouterBuilder routeBuilder) { var convention = routeBuilder.GetTemplateConvention("{vm}"); typeof(RoutingConfiguration).GetTypesFromSameAssembly() .InNamespace("Ornette.UI.ViewModel.Pages") .Register(convention); }
private static void BuildRoutes(IRouterBuilder routeBuilder) { var convention = routeBuilder.GetTemplateConvention("{vm}"); typeof(RoutingConfiguration).GetTypesFromSameAssembly() .InNamespace("Neutronium.Vue.SPA.ViewModel") .Register(convention); }
private static void BuildRoutes(IRouterBuilder routeBuilder) { var convention = routeBuilder.GetTemplateConvention("{vm}"); typeof(RoutingConfiguration).GetTypesFromSameAssembly() .InNamespace("Neutronium.ReactiveTrader.Client.ViewModel.Pages") .Register(convention); routeBuilder.Register <IShellViewModel>("main"); routeBuilder.Register <IShellViewModel>("blot"); }
public static IRouterBuilder MapRoute(this IRouterBuilder routeBuilder, string path, IBehavior behavior, dynamic rule) { MapRoute route = new MapRoute(path, path, behavior, rule); if (!Routers.ContainsKey(path)) { Routers.Add(path, route); } return(routeBuilder); }
public static IRouterBuilder Default <TViewModel>(this IRouterBuilder builder) where TViewModel : IActivatable <Unit> => builder.Default(route => route.SetViewModel(typeof(TViewModel)), Unit.Default);
public static IRouterBuilder Default <TViewModel>(this IRouterBuilder builder, object parameters) => builder.Default(route => route.SetViewModel(typeof(TViewModel)), parameters);
public static IRouterBuilder When <TViewModel>(this IRouterBuilder builder) => builder.When(route => route.SetViewModel(typeof(TViewModel)));
public static IRouterBuilder When <TViewModel>(this IRouterBuilder builder, Func <IRouteBuilder, IRouteBuilder> buildRoute) => builder.When(route => buildRoute(route.SetViewModel(typeof(TViewModel))));
public static IRouterBuilder MapRoute(this IRouterBuilder routeBuilder, string path, IBehavior behavior) { return(MapRoute(routeBuilder, path, behavior, null)); }
/// <summary> /// Create a convention router for the given router builder /// </summary> /// <param name="routerBuilder"></param> /// <param name="template"></param> /// <param name="postFix"></param> /// <returns></returns> public static IExtendedConventionRouter GetTemplateConvention(this IRouterBuilder routerBuilder, string template, string postFix) { return(new ConventionRouter(routerBuilder, template, postFix: postFix)); }
/// <summary> /// Create a convention router for the given router builder /// </summary> /// <param name="routerBuilder"></param> /// <param name="template"></param> /// <param name="lowerPath"></param> /// <returns></returns> public static IExtendedConventionRouter GetTemplateConvention(this IRouterBuilder routerBuilder, string template, bool lowerPath = true) { return(new ConventionRouter(routerBuilder, template, lowerPath)); }
public RouterBuilderTests() { this.builder = new RouterBuilder(() => Substitute.For <INavigator>()); }
/// <summary> /// Construct convention router using a factory method /// </summary> /// <param name="routerBuilder"></param> /// <param name="routeInformationGetter"></param> internal ConventionRouter(IRouterBuilder routerBuilder, Func <Type, string, Tuple <RouteSpecification, RouteDestination> > routeInformationGetter) { _RouterBuilder = routerBuilder; _RouteInformationGetter = routeInformationGetter; }
public RouterMiddleware(RequestDelegate next, IRouterBuilder router) { _next = next; _router = router; }
public ConventionRouter(IRouterBuilder routerBuilder, string format, string postFix = null) { _RouterBuilder = routerBuilder; _PostFix = postFix ?? ViewModelPostFix; _Format = format.Replace("{vm}", "{0}").Replace("{namespace}", "{1}").Replace("{id}", "{2}"); }
public static IConventionRouter GetTemplateConvention(this IRouterBuilder routerBuilder, string template) { return(new ConventionRouter(routerBuilder, template)); }