public static IServiceCollection AddSpeedWagon(this IServiceCollection services, string path, bool cached, IFileProvider contentFileProvider)
        {
            IContentService contentService;

            if (cached)
            {
                services.AddHostedService <CacheRefreshingHostedService>();
                contentService = new CachedRuntimeContentService(
                    path, null, contentFileProvider
                    );
            }
            else
            {
                contentService = new CacheLessRuntimeContentService(
                    path, null, contentFileProvider
                    );
            }

            ISearchService searchService = new LuceneSearchService(contentService, Path.Combine(path, "search"));

            services.AddSingleton <ISpeedWagonWebContext>(
                s => new SpeedWagonWebContext(
                    path, contentService, searchService));

            return(services);
        }
예제 #2
0
        private async void DoWork(object state)
        {
            CachedRuntimeContentService svc = (CachedRuntimeContentService)this._speedWagonWebContext.ContentService;

            await svc.SanitiseCache();
        }