mirror of
https://github.com/volodymyrsmirnov/MalwareMultiScan.git
synced 2025-08-24 05:22:22 +00:00
32 lines
1.3 KiB
C#
32 lines
1.3 KiB
C#
using System;
|
|
using MalwareMultiScan.Backends.Backends.Implementations;
|
|
using MalwareMultiScan.Backends.Enums;
|
|
using MalwareMultiScan.Backends.Interfaces;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
using Microsoft.Extensions.Logging;
|
|
|
|
namespace MalwareMultiScan.Backends.Extensions
|
|
{
|
|
public static class ServiceCollectionExtensions
|
|
{
|
|
public static void AddScanningBackend(this IServiceCollection services, BackendType type)
|
|
{
|
|
using var provider = services.BuildServiceProvider();
|
|
|
|
var logger = provider.GetService<ILogger<IScanBackend>>();
|
|
|
|
services.AddSingleton<IScanBackend>(type switch
|
|
{
|
|
BackendType.Dummy => new DummyScanBackend(),
|
|
BackendType.Defender => new WindowsDefenderScanBackend(logger),
|
|
BackendType.Clamav => new ClamavScanBackend(logger),
|
|
BackendType.DrWeb => new DrWebScanBackend(logger),
|
|
BackendType.Kes => new KesScanBackend(logger),
|
|
BackendType.Comodo => new ComodoScanBackend(logger),
|
|
BackendType.Sophos => new SophosScanBackend(logger),
|
|
BackendType.McAfee => new McAfeeScanBackend(logger),
|
|
_ => throw new NotImplementedException()
|
|
});
|
|
}
|
|
}
|
|
} |