/// <summary> /// Registers ApplicationInsightsTracer /// </summary> /// <param name="services"></param> /// <returns></returns> public static IDotvvmServiceCollection AddApplicationInsightsTracing(this IDotvvmServiceCollection services) { services.AddApplicationInsightsTracingInternal(); services.Services.AddTransient <IConfigureOptions <DotvvmConfiguration>, ApplicationInsightSetup>(); return(services); }
public static void ConfigureServices(IDotvvmServiceCollection dotvvmServices) { var services = dotvvmServices.Services; // normally, you'd put that to DotvvmStartup, but I need to test both options services.Configure <DotvvmMarkupConfiguration>(config => { // import namespaces config.ImportedNamespaces.Add(new Framework.Compilation.NamespaceImport("DotVVM.Samples.BasicSamples.TestNamespace1", "TestNamespaceAlias")); config.ImportedNamespaces.Add(new Framework.Compilation.NamespaceImport("DotVVM.Samples.BasicSamples.TestNamespace2")); }); services.AddScoped <DotVVM.Samples.BasicSamples.ViewModels.FeatureSamples.Redirect.RedirectService>(); services.Configure <DotvvmResourceRepository>(RegisterResources); services.Configure <JavascriptTranslatorConfiguration>(c => { c.MethodCollection.AddMethodTranslator(typeof(JavaScriptUtils), nameof(JavaScriptUtils.LimitLength), new GenericMethodCompiler((a) => new JsIdentifierExpression("limitLength").Invoke(a))); }); dotvvmServices.AddDefaultTempStorages("Temp"); services.AddScoped <ViewModelScopedDependency>(); services.AddSingleton <IGreetingComputationService, HelloGreetingComputationService>(); services.AddSingleton <FoodSevice>(); services.AddSingleton <IViewModelServerStore, TestingInMemoryViewModelServerStore>(); services.AddSingleton <ResetClient>(); services.AddSingleton <OrdersClient>(); services.AddSingleton <CompaniesClient>(); services.AddSingleton <TestWebApiClientOwin>(); services.AddSingleton <TestWebApiClientAspNetCore>(); }
/// <summary> /// Adds Server Side ViewModel Cache Diagnostics to the application. /// </summary> public static IDotvvmServiceCollection AddServerSideCacheDiagnostics(this IDotvvmServiceCollection services, ServerSideCacheDiagnosticsOptions options = null) { if (options == null) { options = ServerSideCacheDiagnosticsOptions.CreateDefaultOptions(); } services.Services.AddSingleton <ServerSideCacheDiagnosticsOptions>(options); services.Services.AddSingleton <DiagnosticsDataStore>(); services.Services.AddSingleton <IViewModelServerStore, DiagnosticsViewModelServerStore>(); services.Services.AddSingleton <IViewModelServerCache, DiagnosticsViewModelServerCache>(); services.Services.AddSingleton <DefaultViewModelSerializer>(); services.Services.AddSingleton <DefaultViewModelServerCache>(); services.Services.Replace(ServiceDescriptor.Singleton <IViewModelSerializer>(provider => new DiagnosticsViewModelSerializerDecorator( provider.GetService <DefaultViewModelSerializer>(), provider.GetService <DiagnosticsDataStore>() ))); services.Services.Configure((DotvvmConfiguration config) => { config.RouteTable.Add(options.RouteName, options.Url, "embedded://DotVVM.Diagnostics.ServerSideCache/Pages.Report.dothtml"); }); return(services); }
public void ConfigureServices(IDotvvmServiceCollection options) { //register only services that are supported by DotVVM (otherwise, register your services in Startup.cs) options.AddDefaultTempStorages("Temp"); options.AddBusinessPack(); }
public void ConfigureServices(IDotvvmServiceCollection options) { options.Services.AddSingleton <DataSourceService>(); options.AddBusinessPack(); options.AddDefaultTempStorages("temp"); }
public void ConfigureServices(IDotvvmServiceCollection options) { options.AddDefaultTempStorages("App_Data\\temp"); options.Services.AddScoped <TasksService>(); options.Services.AddScoped <CategoriesService>(); }
public void ConfigureServices(IDotvvmServiceCollection options) { options.AddDefaultTempStorages("temp"); options.AddUploadedFileStorage("App_Data/Temp"); options.AddSeleniumGenerator(o => { //o.AddCustomGenerator(new ControlBSeleniumGenerator()); }); }
/// <summary> /// Adds file system returned file storage to the application. See <see cref="IReturnedFileStorage" /> for more details. /// </summary> /// <param name="services">The <see cref="IDotvvmServiceCollection" /> instance.</param> /// <param name="tempPath">The absolute or relative path to directory where to store temporary files.</param> /// <param name="autoDeleteInterval">The interval to delete the temporary files after.</param> public static IDotvvmServiceCollection AddReturnedFileStorage(this IDotvvmServiceCollection services, string tempPath, TimeSpan autoDeleteInterval) { services.Services.TryAddSingleton <IReturnedFileStorage>(s => { var fullPath = Path.Combine(s.GetService <DotvvmConfiguration>().ApplicationPhysicalPath, tempPath); return(new FileSystemReturnedFileStorage(fullPath, autoDeleteInterval)); }); return(services); }
/// <summary> /// Registers ApplicationInsightsTracer /// </summary> /// <param name="services"></param> /// <returns></returns> public static IDotvvmServiceCollection AddApplicationInsightsTracing(this IDotvvmServiceCollection services) { TelemetryConfiguration.Active.TelemetryProcessorChainBuilder.Use(next => new RequestTelemetryFilter(next)).Build(); services.Services.TryAddSingleton <TelemetryClient>(); services.AddDotvvmApplicationInsights(); services.Services.AddTransient <IConfigureOptions <DotvvmConfiguration>, ApplicationInsightSetup>(); return(services); }
public static void AddSeleniumGenerator(this IDotvvmServiceCollection services, Action <SeleniumGeneratorOptions> optionsBuilder = null) { services.Services.AddSingleton <SeleniumGeneratorOptions>(provider => { var options = new SeleniumGeneratorOptions(); optionsBuilder?.Invoke(options); return(options); }); }
public void ConfigureServices(IDotvvmServiceCollection options) { options.AddStatusPage(pageOptions => { pageOptions.CompileAfterPageLoads = false; }); options.AddStatusPageApi(apiOptions => { apiOptions.NonAuthorizedApiAccessMode = NonAuthorizedApiAccessMode.DetailedResponse; }); options.AddDefaultTempStorages("temp"); }
public static IDotvvmServiceCollection AddMiniProfilerEventTracing(IDotvvmServiceCollection services) { services.Services.AddTransient <IRequestTracer, MiniProfilerTracer>(); services.Services.Configure((MiniProfilerOptions opt) => opt.IgnoredPaths.Add("/dotvvmResource/")); services.Services.Configure((DotvvmConfiguration conf) => { conf.Markup.AddCodeControls(DotvvmConfiguration.DotvvmControlTagPrefix, typeof(MiniProfilerWidget)); conf.Runtime.GlobalFilters.Add( new MiniProfilerActionFilter(conf.ServiceProvider.GetService <IOptions <MiniProfilerOptions> >())); }); return(services); }
public static void AddViewHotReload(this IDotvvmServiceCollection services, DotvvmViewHotReloadOptions options = null) { services.Services.AddSingleton <IMarkupFileChangeNotifier, OwinMarkupFileChangeNotifier>(); services.Services.AddSingleton <IMarkupFileLoader, HotReloadAggregateMarkupFileLoader>(); services.Services.Configure <DotvvmConfiguration>(config => RegisterResources(config, options ?? new DotvvmViewHotReloadOptions())); services.Services.AddTransient <ResourceManager>(provider => { var manager = new ResourceManager(provider.GetRequiredService <DotvvmResourceRepository>()); manager.AddRequiredResource("dotvvm-viewhotreload"); return(manager); }); }
/// <summary> /// Adds diagnostic services required for DotVVM Diagnostic Window to work. /// DotVVM Diagnostic Window helps with debugging postbacks and highlighting requests with potential issues during development time. /// </summary> /// <param name="services">The <see cref="IDotvvmServiceCollection" /> instance.</param> public static IDotvvmServiceCollection AddDiagnosticServices(this IDotvvmServiceCollection services) { services.Services.TryAddSingleton <DotvvmDiagnosticsConfiguration>(); services.Services.TryAddSingleton <IDiagnosticsInformationSender, DiagnosticsInformationSender>(); services.Services.TryAddSingleton <IOutputRenderer, DiagnosticsRenderer>(); services.Services.AddScoped <DiagnosticsRequestTracer>(s => new DiagnosticsRequestTracer(s.GetRequiredService <IDiagnosticsInformationSender>())); services.Services.AddScoped <IRequestTracer>(s => { var config = s.GetRequiredService <DotvvmConfiguration>(); return((config.Debug ? (IRequestTracer)s.GetService <DiagnosticsRequestTracer>() : null) ?? new NullRequestTracer()); }); return(services); }
public void ConfigureServices(IDotvvmServiceCollection options) { options.AddBusinessPack(); options.AddStatusPage(); options.AddDefaultTempStorages("Temp"); options.AddMiniProfilerEventTracing(); options.AddApplicationInsightsTracing(); var dynamicDataConfig = new AppDynamicDataConfiguration(); options.AddDynamicData(dynamicDataConfig); }
/// <summary> /// Registers MiniProfiler tracer and MiniProfilerWidget /// </summary> /// <param name="services"></param> /// <returns></returns> public static IDotvvmServiceCollection AddMiniProfilerEventTracing(this IDotvvmServiceCollection services) { services.Services.AddScoped <IRequestTracer, MiniProfilerTracer>(); services.Services.AddScoped <IMiniProfilerRequestTracer, MiniProfilerTracer>(); services.Services.AddScoped <IRequestTimingStorage, DotvvmTimingStorage>(); services.Services.Configure((MiniProfilerOptions opt) => { opt.IgnoredPaths.Add("/dotvvmResource/"); }); services.Services.AddTransient <IConfigureOptions <DotvvmConfiguration>, MiniProfilerSetup>(); return(services); }
public static void AddViewHotReload(this IDotvvmServiceCollection services) { services.Services.AddSignalR(); services.Services.AddSingleton <IMarkupFileChangeNotifier, AspNetCoreMarkupFileChangeNotifier>(); services.Services.AddSingleton <IMarkupFileLoader, HotReloadAggregateMarkupFileLoader>(); services.Services.Configure <DotvvmConfiguration>(RegisterResources); services.Services.AddTransient <ResourceManager>(provider => { var manager = new ResourceManager(provider.GetRequiredService <DotvvmResourceRepository>()); manager.AddRequiredResource("dotvvm-viewhotreload"); return(manager); }); }
/// <summary> /// Registers ApplicationInsightsTracer /// </summary> /// <param name="services"></param> /// <returns></returns> public static IDotvvmServiceCollection AddApplicationInsightsTracing(this IDotvvmServiceCollection services) { if (!services.Services.Any(s => s.ServiceType == typeof(TelemetryClient))) { throw new InvalidOperationException("Application Insights must be configured before DotVVM. Make sure you call services.AddApplicationInsightsTelemetry(configuration) before services.AddDotVVM<DotvvmStartup>()."); } services.Services.AddHttpContextAccessor(); services.AddDotvvmApplicationInsights(); services.Services.AddApplicationInsightsTelemetryProcessor <RequestTelemetryFilter>(); services.Services.TryAddSingleton <JavaScriptSnippet>(); services.Services.AddTransient <IConfigureOptions <DotvvmConfiguration>, ApplicationInsightSetup>(); return(services); }
/// <summary> /// Adds Compilation Status Page to the application. /// </summary> public static IDotvvmServiceCollection AddStatusPage(this IDotvvmServiceCollection services, StatusPageOptions options) { if (options == null) { options = StatusPageOptions.CreateDefaultOptions(); } services.Services.AddSingleton <StatusPageOptions>(options); services.Services.AddTransient <StatusPagePresenter>(); services.Services.Configure((DotvvmConfiguration config) => { config.RouteTable.Add(options.RouteName, options.Url, "embedded://DotVVM.Diagnostics.StatusPage/Status.dothtml", null, s => s.GetService <StatusPagePresenter>()); }); return(services); }
/// <summary> /// Registers all services required by DotVVM Dynamic Data. /// </summary> public static IDotvvmServiceCollection AddDynamicData(this IDotvvmServiceCollection services, DynamicDataConfiguration dynamicDataConfiguration = null) { if (dynamicDataConfiguration == null) { dynamicDataConfiguration = new DynamicDataConfiguration(); } // add the configuration of Dynamic Data to the service collection services.Services.AddSingleton(serviceProvider => dynamicDataConfiguration); RegisterDefaultProviders(services.Services, dynamicDataConfiguration); if (dynamicDataConfiguration.UseLocalizationResourceFiles) { RegisterResourceFileProviders(services.Services, dynamicDataConfiguration); } return(services); }
/// <summary> /// Registers MiniProfiler tracer and MiniProfilerWidget /// </summary> /// <param name="services"></param> /// <returns></returns> public static IDotvvmServiceCollection AddMiniProfilerEventTracing(this IDotvvmServiceCollection services) { services.Services.AddScoped <IRequestTracer, MiniProfilerTracer>(); services.Services.AddScoped <IMiniProfilerRequestTracer, MiniProfilerTracer>(); services.Services.AddScoped <IRequestTimingStorage, DotvvmTimingStorage>(); services.Services.Configure((MiniProfilerOptions opt) => { opt.IgnoredPaths.Add("/dotvvmResource/"); }); services.Services.Configure((DotvvmConfiguration conf) => { conf.Markup.AddCodeControls(DotvvmConfiguration.DotvvmControlTagPrefix, typeof(MiniProfilerWidget)); conf.Runtime.GlobalFilters.Add(new MiniProfilerActionFilter()); }); return(services); }
public static void AddDotvvmAmpSupport(this IDotvvmServiceCollection serviceCollection, Action <DotvvmAmpConfiguration, ILogger> modifyConfiguration = null) { serviceCollection.Services.AddSingleton <IAmpPresenter, DotvvmAmpPresenter>(); serviceCollection.Services.AddFactory <IAmpStylesheetResourceCollection, AmpStylesheetResourceCollection>(); serviceCollection.Services.AddSingleton <IAmpOutputRenderer, AmpOutputRenderer>(); serviceCollection.Services.AddSingleton <IAmpDotvvmViewBuilder, AmpViewBuilder>(); serviceCollection.Services.AddSingleton <IAmpControlTransformsRegistry, AmpControlTransformsRegistry>(); serviceCollection.Services.AddSingleton <IAmpValidator, AmpValidator>(); serviceCollection.Services.AddSingleton <IAmpRouteManager, AmpRouteManager>(); serviceCollection.Services.AddSingleton <IAmpExternalResourceMetadataCache, AmpExternalResourceMetadataCache>(); serviceCollection.Services.AddSingleton <DotvvmAmpConfiguration>(provider => { var registry = provider.GetService <IAmpControlTransformsRegistry>(); var routeManager = provider.GetService <IAmpRouteManager>(); var logger = provider.GetService <ILogger>(); var externalResourceMetadataCache = provider.GetService <IAmpExternalResourceMetadataCache>(); var config = new DotvvmAmpConfiguration(registry, routeManager, externalResourceMetadataCache); RegisterTransforms(config, logger); modifyConfiguration?.Invoke(config, logger); return(config); }); }
public void ConfigureServices(IDotvvmServiceCollection options) { options .AddDefaultTempStorages("temp") .AddApplicationInsightsTracing(); }
public void ConfigureServices(IDotvvmServiceCollection services) { CommonConfiguration.ConfigureServices(services); }
public void ConfigureServices(IDotvvmServiceCollection options) { options.AddDefaultTempStorages("Temp"); options.AddMiniProfilerEventTracing(); options.Services.AddTransient <DefaultStaticCommandService>(); }
public void ConfigureServices(IDotvvmServiceCollection options) { options.AddBusinessPack(); options.AddDefaultTempStorages("temp"); }
public void ConfigureServices(IDotvvmServiceCollection services) { CommonConfiguration.ConfigureServices(services); services.AddDefaultTempStorages("Temp"); }
public void ConfigureServices(IDotvvmServiceCollection services) { services.AddDefaultTempStorages("temp"); }
public void ConfigureServices(IDotvvmServiceCollection options) { options.AddDefaultTempStorages("Temp"); }
/// <summary> /// Adds file system returned file storage to the application. See <see cref="IReturnedFileStorage" /> for more details. /// </summary> /// <param name="services">The <see cref="IDotvvmServiceCollection" /> instance.</param> /// <param name="tempPath">The absolute or relative path to directory where to store temporary files.</param> public static IDotvvmServiceCollection AddReturnedFileStorage(this IDotvvmServiceCollection services, string tempPath) => services.AddReturnedFileStorage(tempPath, TimeSpan.FromMinutes(30));