Пример #1
0
        public void RegisterRoutes()
        {
            // Get all Controllers
            var controllerObjs = _container.GetAllInstances(typeof(ChromelyController)).ToList();

            if (controllerObjs != null && controllerObjs.Any())
            {
                foreach (var obj in controllerObjs)
                {
                    var controller = obj as ChromelyController;
                    if (controller != null)
                    {
                        ServiceRouteProvider.RegisterActionRoutes(_container, controller.ActionRouteDictionary);
                        ServiceRouteProvider.RegisterCommnandRoutes(_container, controller.CommandRouteDictionary);

                        var actionRouteDictionary  = new Dictionary <string, ActionRoute>();
                        var commandRouteDictionary = new Dictionary <string, CommandRoute>();

                        var controllerFactory = new ChromelyControllerFactory(_container);

                        // Add Http Attributes
                        var httpAttributeRoutes = controllerFactory.GetHttpAttributeRoutes(controller);
                        if ((httpAttributeRoutes != null) && httpAttributeRoutes.Any())
                        {
                            foreach (var item in httpAttributeRoutes)
                            {
                                if (!actionRouteDictionary.ContainsKey(item.Key))
                                {
                                    actionRouteDictionary.Add(item.Key, item.Value);
                                }
                            }
                        }

                        // Add Custom Attributes
                        var customAttributeRoutes = controllerFactory.GetCommandAttributeRoutes(controller);
                        if ((customAttributeRoutes != null) && customAttributeRoutes.Any())
                        {
                            foreach (var item in customAttributeRoutes)
                            {
                                if (!commandRouteDictionary.ContainsKey(item.Key))
                                {
                                    commandRouteDictionary.Add(item.Key, item.Value);
                                }
                            }
                        }


                        ServiceRouteProvider.RegisterActionRoutes(_container, actionRouteDictionary);
                        ServiceRouteProvider.RegisterCommnandRoutes(_container, commandRouteDictionary);
                    }
                }
            }
        }
Пример #2
0
        public void RegisterRoutes()
        {
            // Get all Controllers
            var controllerObjs = _container.GetAllInstances(typeof(ChromelyController)).ToList();

            if (controllerObjs != null && controllerObjs.Any())
            {
                foreach (var obj in controllerObjs)
                {
                    var controller = obj as ChromelyController;
                    if (controller != null)
                    {
                        ServiceRouteProvider.RegisterActionRoutes(_container, controller.ActionRouteDictionary);
                        ServiceRouteProvider.RegisterCommnandRoutes(_container, controller.CommandRouteDictionary);
                    }
                }
            }
        }
Пример #3
0
        public void ScanAssemblies()
        {
            if ((_config?.ControllerAssemblies == null) || (_config?.ControllerAssemblies.Count == 0))
            {
                return;
            }

            foreach (var assembly in _config?.ControllerAssemblies)
            {
                if (!assembly.IsScanned)
                {
                    var scanner       = new RouteScanner(assembly.Assembly, _container);
                    var scanResult    = scanner.Scan();
                    var actionRoutes  = scanResult?.Item1;
                    var commandRoutes = scanResult?.Item2;
                    ServiceRouteProvider.RegisterActionRoutes(_container, actionRoutes);
                    ServiceRouteProvider.RegisterCommnandRoutes(_container, commandRoutes);

                    assembly.IsScanned = true;
                }
            }
        }