mirror of
https://github.com/azaion/annotations.git
synced 2026-04-22 06:36:31 +00:00
46 lines
1.7 KiB
C#
46 lines
1.7 KiB
C#
using Azaion.Common.Database;
|
|
using Azaion.Common.DTO;
|
|
using Azaion.Common.DTO.Config;
|
|
using Azaion.Common.Services;
|
|
using Azaion.Common.Services.Inference;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
using Microsoft.Extensions.Options;
|
|
|
|
namespace Azaion.Common.Infrastructure;
|
|
|
|
public static class ServiceCollectionExtensions
|
|
{
|
|
public static IServiceCollection AddAzaionInfrastructure(this IServiceCollection services)
|
|
{
|
|
services.AddSingleton<IFileSystem, PhysicalFileSystem>();
|
|
services.AddSingleton<IProcessLauncher, ProcessLauncher>();
|
|
services.AddSingleton<IAnnotationPathResolver>(sp =>
|
|
new AnnotationPathResolver(sp.GetRequiredService<IOptions<DirectoriesConfig>>().Value));
|
|
services.AddSingleton<IDetectionClassProvider, DetectionClassProvider>();
|
|
services.AddSingleton<IAnnotationRepository, AnnotationRepository>();
|
|
|
|
return services;
|
|
}
|
|
|
|
public static IServiceCollection AddAzaionConfiguration(this IServiceCollection services)
|
|
{
|
|
services.AddSingleton<IConfigurationStore>(sp =>
|
|
new FileConfigurationStore(Constants.CONFIG_PATH, sp.GetRequiredService<IFileSystem>()));
|
|
services.AddSingleton<IConfigUpdater, ConfigUpdater>();
|
|
|
|
return services;
|
|
}
|
|
|
|
public static IServiceCollection AddAzaionServices(this IServiceCollection services)
|
|
{
|
|
services.AddSingleton<IDbFactory, DbFactory>();
|
|
services.AddSingleton<FailsafeAnnotationsProducer>();
|
|
services.AddSingleton<IAnnotationService, AnnotationService>();
|
|
services.AddSingleton<IGalleryService, GalleryService>();
|
|
services.AddSingleton<IInferenceService, InferenceService>();
|
|
|
|
return services;
|
|
}
|
|
}
|
|
|