internal void RegisterController()
        {
            var features = _extensionManager.LoadFeaturesAsync().Result;

            foreach (var feature in features)
            {
                _mvcControllerBuilderFactory.ForAll <IAppService>(AreaTemplate.GetAreaKey(new AreaOption()
                {
                    AreaName     = feature.FeatureInfo.Id,
                    FunctionType = "api"
                }), feature.ExportedTypes.Where(IsController)).Build();
            }
        }
Beispiel #2
0
        public IList <RouteDescriptor> GetRoutes()
        {
            var runningShells = _shellHost.ListShellContextsAsync().Result
                                .Where(sc => sc.Settings.State == TenantState.Running);

            var activeFeatures = runningShells.SelectMany(r => r.Blueprint.Descriptor.Features);


            return(activeFeatures.Select(f =>
            {
                var areaName = AreaTemplate.GetAreaKey(new AreaOption()
                {
                    AreaName = f.Id, FunctionType = "Views"
                });
                return new RouteDescriptor
                {
                    Name = areaName + "Route",
                    AreaName = areaName,
                    Priority = -10,
                    RouteTemplate = areaName + "/{controller}/{action}/{id?}",
                    Defaults = new { area = areaName, controller = "home", action = "index" }
                };
            }).ToList());
        }