public ComponentsService(Type[] types, ILogger <ComponentsService> logger, DirectLinkOptionsProvider optionsProvider)
        {
            _logger = logger;
            var options = optionsProvider.Options;

            _componentNameConverter = options.ComponentNameConverter;
            _fileNameConverter      = options.FileNameConverter;
            _scriptExtension        = options.ScriptExtension;
            _styleExtension         = options.StyleExtension;

            foreach (var type in types)
            {
                ProcessType(type);
            }

            _watcherDelay = options.FileWatcherDelay;
            _assetsParser = options.AssetsParser ?? AssetsParser;
            _assets       = new ConcurrentDictionary <string, string>();

            var assetsPath = options.AssetsPath;

            if (File.Exists(assetsPath))
            {
                _assetsParser(File.ReadAllText(assetsPath), _assets);
                _watcher = BeginFileWatcher(Path.GetDirectoryName(Path.GetFullPath(assetsPath)), Path.GetFileName(assetsPath));
            }
        }
Beispiel #2
0
        public RoutingService(
            IServiceProvider provider,
            IAuthorizationService authorizationService,
            IComponentsService componentsService,
            DirectLinkOptionsProvider optionsProvider
            )
        {
            _provider             = provider;
            _authorizationService = authorizationService;
            _componentsService    = componentsService;
            var routingEvents = provider.GetService <IRoutingEvents>();

            _onStarting  = routingEvents?.OnStarting() ?? Task.CompletedTask;
            _onCompleted = data => routingEvents?.OnCompleted(data) ?? Task.CompletedTask;

            var options = optionsProvider.Options;

            _entryType    = options.EntryType;
            _notFoundPath = options.NotFoundPath;
            _notAuthPath  = options.NotAuthPath;
            _errorPath    = options.ErrorPath;
            _pathBases    = new List <string>(options.PathBases);
        }