92 lines
4.4 KiB
C#
92 lines
4.4 KiB
C#
using Microsoft.Extensions.Configuration;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
using OrpaonVision.ConfigApp.Annotation.Options;
|
|
using OrpaonVision.ConfigApp.Annotation.Services;
|
|
using OrpaonVision.ConfigApp.Configuration.Services;
|
|
using OrpaonVision.ConfigApp.Infrastructure.Diagnostics;
|
|
using OrpaonVision.ConfigApp.Infrastructure.Logging;
|
|
using OrpaonVision.ConfigApp.Infrastructure.Persistence;
|
|
using OrpaonVision.ConfigApp.Infrastructure.Persistence.Options;
|
|
using OrpaonVision.ConfigApp.Infrastructure.Services;
|
|
using OrpaonVision.ConfigApp.Infrastructure.Options;
|
|
using OrpaonVision.ConfigApp.ViewModels;
|
|
using OrpaonVision.Core.Abstractions;
|
|
using OrpaonVision.Core.Annotation;
|
|
using OrpaonVision.Core.Configuration;
|
|
using OrpaonVision.Core.Production;
|
|
using OrpaonVision.Core.Security;
|
|
using OrpaonVision.Core.Training;
|
|
|
|
namespace OrpaonVision.ConfigApp.DependencyInjection;
|
|
|
|
/// <summary>
|
|
/// ConfigApp 服务注册扩展。
|
|
/// </summary>
|
|
public static class ServiceCollectionExtensions
|
|
{
|
|
/// <summary>
|
|
/// 注册 ConfigApp 应用服务。
|
|
/// </summary>
|
|
/// <param name="services">服务集合。</param>
|
|
/// <returns>服务集合。</returns>
|
|
public static IServiceCollection AddConfigAppServices(this IServiceCollection services, IConfiguration configuration)
|
|
{
|
|
var cvatOptions = new CvatOptions();
|
|
configuration.GetSection("Cvat").Bind(cvatOptions);
|
|
|
|
var persistenceOptions = new PersistenceOptions();
|
|
configuration.GetSection("Persistence").Bind(persistenceOptions);
|
|
|
|
var sessionPersistenceOptions = new SessionPersistenceOptions();
|
|
configuration.GetSection("SessionPersistence").Bind(sessionPersistenceOptions);
|
|
|
|
var modelPackageOptions = new ModelPackageOptions();
|
|
configuration.GetSection("ModelPackage").Bind(modelPackageOptions);
|
|
|
|
var runtimeDeploymentSnapshotOptions = new RuntimeDeploymentSnapshotOptions();
|
|
configuration.GetSection("RuntimeDeploymentSnapshot").Bind(runtimeDeploymentSnapshotOptions);
|
|
|
|
services.AddSingleton(cvatOptions);
|
|
services.AddSingleton(persistenceOptions);
|
|
services.AddSingleton(sessionPersistenceOptions);
|
|
services.AddSingleton(modelPackageOptions);
|
|
services.AddSingleton(runtimeDeploymentSnapshotOptions);
|
|
services.AddSingleton<IAnnotationSyncAppService, CvatAnnotationSyncAppService>();
|
|
services.AddSingleton<IRuleConfigurationAppService, RuleConfigurationAppService>();
|
|
services.AddSingleton<IAnnotationTaskStore, AnnotationTaskStore>();
|
|
services.AddSingleton<IRuleConfigurationStore, RuleConfigurationStore>();
|
|
services.AddSingleton<IDataStoreInitializer, SqlServerDataStoreInitializer>();
|
|
services.AddSingleton<IAppLogger, FileAppLogger>();
|
|
services.AddSingleton<GlobalExceptionHandler>();
|
|
|
|
// 训练任务管理服务
|
|
services.AddSingleton<ITrainingTaskService, TrainingTaskService>();
|
|
|
|
// 模型包管理服务
|
|
services.AddSingleton<OrpaonVision.Core.Training.IModelPackageAppService, OrpaonVision.ConfigApp.Infrastructure.Services.ModelPackageAppService>();
|
|
|
|
// 运行时部署快照管理服务
|
|
services.AddSingleton<OrpaonVision.Core.Training.IRuntimeDeploymentSnapshotAppService, OrpaonVision.ConfigApp.Infrastructure.Services.RuntimeDeploymentSnapshotAppService>();
|
|
|
|
// 用户权限管理服务
|
|
services.AddSingleton<IUserService, UserService>();
|
|
services.AddSingleton<IRoleService, RoleService>();
|
|
services.AddSingleton<IPermissionService, PermissionService>();
|
|
services.AddSingleton<IUserRoleService, UserRoleService>();
|
|
services.AddSingleton<IRolePermissionService, RolePermissionService>();
|
|
services.AddSingleton<IAuthorizationService, AuthorizationService>();
|
|
services.AddSingleton<CurrentUserContext>();
|
|
|
|
// 产品会话服务
|
|
services.AddSingleton<IProductionSessionService, OrpaonVision.Core.Services.ProductionSessionService>();
|
|
services.AddSingleton<IProductionSessionManagerService, ProductionSessionManagerService>();
|
|
services.AddSingleton<IProductionSessionRepository, SqlProductionSessionRepository>();
|
|
|
|
// ViewModel
|
|
services.AddSingleton<MainWindowViewModel>();
|
|
services.AddSingleton<TrainingTaskManagementViewModel>();
|
|
services.AddSingleton<ProductionSessionManagementViewModel>();
|
|
return services;
|
|
}
|
|
}
|