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); } } } }
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); } } } }
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; } } }