|
1 | | -using FwDataMiniLcmBridge; |
2 | | -using FwDataMiniLcmBridge.Media; |
3 | | -using FwHeadless.Media; |
4 | | -using FwHeadless.Services; |
5 | | -using FwLiteProjectSync; |
6 | | -using LcmCrdt; |
7 | | -using Microsoft.Extensions.DependencyInjection.Extensions; |
8 | | -using Microsoft.Extensions.Options; |
9 | | -using MiniLcm.Project; |
10 | | - |
11 | | -namespace FwHeadless; |
12 | | - |
13 | | -public static class FwHeadlessKernel |
14 | | -{ |
15 | | - public const string LexboxHttpClientName = "LexboxHttpClient"; |
16 | | - public static IServiceCollection AddFwHeadless(this IServiceCollection services) |
17 | | - { |
18 | | - services |
19 | | - .AddLogging(builder => builder.AddConsole().AddDebug().AddFilter("Microsoft.EntityFrameworkCore", LogLevel.Warning)); |
20 | | - services.AddOptions<FwHeadlessConfig>() |
21 | | - .BindConfiguration("FwHeadlessConfig") |
22 | | - .ValidateDataAnnotations() |
23 | | - .ValidateOnStart(); |
24 | | - services.AddSingleton<ISyncJobStatusService, SyncJobStatusService>(); |
25 | | - services.AddScoped<ISendReceiveService, SendReceiveService>(); |
26 | | - services.AddScoped<IProjectLookupService, ProjectLookupService>(); |
27 | | - services.AddScoped<ProjectDeletionService>(); |
28 | | - services.AddScoped<LogSanitizerService>(); |
29 | | - services.AddScoped<SafeLoggingProgress>(); |
30 | | - services.AddScoped<IProjectMetadataService, ProjectMetadataService>(); |
31 | | - services |
32 | | - .AddLcmCrdtClientCore() |
33 | | - .AddFwDataBridge(ServiceLifetime.Scoped) |
34 | | - .AddFwLiteProjectSync(); |
35 | | - services.RemoveAll(typeof(IMediaAdapter)); |
36 | | - services.AddScoped<IMediaAdapter, LexboxFwDataMediaAdapter>(); |
37 | | - services.AddScoped<MediaFileService>(); |
38 | | - services.AddScoped<IServerHttpClientProvider, LexboxServerHttpClientProvider>(); |
39 | | - |
40 | | - services.AddSingleton<SyncHostedService>(); |
41 | | - services.AddHostedService(s => s.GetRequiredService<SyncHostedService>()); |
42 | | - |
43 | | - services.AddScoped<CrdtSyncService>(); |
44 | | - services.AddScoped<ProjectContextFromIdService>(); |
45 | | - services.AddTransient<HttpClientAuthHandler>(); |
46 | | - services.AddHttpClient(LexboxHttpClientName, |
47 | | - (provider, client) => |
48 | | - { |
49 | | - client.BaseAddress = new Uri(provider.GetRequiredService<IOptions<FwHeadlessConfig>>().Value.LexboxUrl); |
50 | | - }).AddHttpMessageHandler<HttpClientAuthHandler>(); |
51 | | - return services; |
52 | | - } |
53 | | -} |
| 1 | +using FwDataMiniLcmBridge; |
| 2 | +using FwDataMiniLcmBridge.Media; |
| 3 | +using FwHeadless.Media; |
| 4 | +using FwHeadless.Services; |
| 5 | +using FwLiteProjectSync; |
| 6 | +using LcmCrdt; |
| 7 | +using Microsoft.Extensions.DependencyInjection.Extensions; |
| 8 | +using Microsoft.Extensions.Options; |
| 9 | +using MiniLcm.Project; |
| 10 | + |
| 11 | +namespace FwHeadless; |
| 12 | + |
| 13 | +public static class FwHeadlessKernel |
| 14 | +{ |
| 15 | + public const string LexboxHttpClientName = "LexboxHttpClient"; |
| 16 | + public static IServiceCollection AddFwHeadless(this IServiceCollection services) |
| 17 | + { |
| 18 | + services |
| 19 | + .AddLogging(builder => builder.AddConsole().AddDebug().AddFilter("Microsoft.EntityFrameworkCore", LogLevel.Warning)); |
| 20 | + services.AddOptions<FwHeadlessConfig>() |
| 21 | + .BindConfiguration("FwHeadlessConfig") |
| 22 | + .ValidateDataAnnotations() |
| 23 | + .ValidateOnStart(); |
| 24 | + services.AddSingleton<ISyncJobStatusService, SyncJobStatusService>(); |
| 25 | + services.AddScoped<ISendReceiveService, SendReceiveService>(); |
| 26 | + services.AddScoped<IProjectLookupService, ProjectLookupService>(); |
| 27 | + services.AddScoped<ProjectDeletionService>(); |
| 28 | + services.AddScoped<LogSanitizerService>(); |
| 29 | + services.AddScoped<SafeLoggingProgress>(); |
| 30 | + services.AddScoped<IProjectMetadataService, ProjectMetadataService>(); |
| 31 | + services |
| 32 | + .AddLcmCrdtClientCore() |
| 33 | + .AddFwDataBridge(ServiceLifetime.Scoped) |
| 34 | + .AddFwLiteProjectSync(); |
| 35 | + services.RemoveAll(typeof(IMediaAdapter)); |
| 36 | + services.AddScoped<IMediaAdapter, LexboxFwDataMediaAdapter>(); |
| 37 | + services.AddScoped<MediaFileService>(); |
| 38 | + services.AddScoped<IServerHttpClientProvider, LexboxServerHttpClientProvider>(); |
| 39 | + |
| 40 | + services.AddSingleton<SyncHostedService>(); |
| 41 | + services.AddHostedService(s => s.GetRequiredService<SyncHostedService>()); |
| 42 | + |
| 43 | + services.AddScoped<CrdtSyncService>(); |
| 44 | + services.AddScoped<ProjectContextFromIdService>(); |
| 45 | + services.AddTransient<HttpClientAuthHandler>(); |
| 46 | + services.AddHttpClient(LexboxHttpClientName, |
| 47 | + (provider, client) => |
| 48 | + { |
| 49 | + client.BaseAddress = new Uri(provider.GetRequiredService<IOptions<FwHeadlessConfig>>().Value.LexboxUrl); |
| 50 | + }).AddHttpMessageHandler<HttpClientAuthHandler>(); |
| 51 | + return services; |
| 52 | + } |
| 53 | +} |
0 commit comments