예제 #1
0
        public Component Resolve(RouterRequest request)
        {
            var component = ResolveRootComponent(request);

            foreach (var node in request.GetNestedComponentRoutes())
            {
                component = GetNestedComponent(component, node);
            }
            return(component);
        }
예제 #2
0
        private Component ResolveRootComponent(RouterRequest request)
        {
            var rootComponentRoute = request.GetRootComponentRoute();

            var component = container.GetSubTypes(typeof(Component))
                            .Where(x => x.GetCustomAttributes <RouteAttribute>().SingleOrDefault()?.Route == rootComponentRoute)
                            .Select(x => (Component)container.Resolve(x))
                            .SingleOrDefault();

            if (component == null)
            {
                throw new AutoTestFrameworkException("Router have not been able to find a component");
            }

            return(component);
        }