paiban/NPP.SmartSchedue.Api/ServiceCollectionExtensions.cs
Asoka.Wang 0a2e2d9b18 123
2025-09-02 18:52:35 +08:00

64 lines
2.3 KiB
C#

using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Configuration;
using NPP.SmartSchedue.Api.Contracts.Services.Personnel;
using NPP.SmartSchedue.Api.Services.Personnel;
using NPP.SmartSchedue.Api.Contracts.Services.Integration;
using NPP.SmartSchedue.Api.Services.Integration;
using NPP.SmartSchedue.Api.Contracts.Services.Equipment;
using NPP.SmartSchedue.Api.Services.Equipment;
using NPP.SmartSchedue.Api.Contracts.Domain.Equipment;
using NPP.SmartSchedue.Api.Repositories.Equipment;
using NPP.SmartSchedue.Api.Repositories.Personnel;
using NPP.SmartSchedue.Api.Contracts;
using NPP.SmartSchedue.Api.Services.Integration.Algorithms;
using System;
using System.Linq;
using System.Net.Http;
using Polly;
namespace NPP.SmartSchedue.Api
{
/// <summary>
/// 服务集合扩展方法
/// </summary>
public static class ServiceCollectionExtensions
{
/// <summary>
/// 注册人员约束相关服务
/// </summary>
public static IServiceCollection AddPersonnelConstraintServices(this IServiceCollection services)
{
return services;
}
/// <summary>
/// 注册设备相关Repository服务
/// </summary>
public static IServiceCollection AddEquipmentRepositories(this IServiceCollection services)
{
// 注册设备相关Repository
services.AddScoped<IEquipmentRepository, EquipmentRepository>();
services.AddScoped<IEquipmentMaintenanceRepository, EquipmentMaintenanceRepository>();
services.AddScoped<IEquipmentCalibrationRepository, EquipmentCalibrationRepository>();
// 注册人员资质Repository
services.AddScoped<IQualificationRepository, QualificationRepository>();
return services;
}
/// <summary>
/// 注册算法引擎服务
/// </summary>
public static IServiceCollection AddAlgorithmEngines(this IServiceCollection services)
{
// 注册三个核心算法引擎
services.AddScoped<InputValidationEngine>();
services.AddScoped<ContextBuilderEngine>();
services.AddScoped<GeneticAlgorithmEngine>();
services.AddScoped<GlobalOptimizationEngine>();
return services;
}
}
}