using System;
using System.Diagnostics.CodeAnalysis;
using MalwareMultiScan.Backends.Backends;
using MalwareMultiScan.Backends.Backends.Interfaces;
using MalwareMultiScan.Backends.Services.Implementations;
using MalwareMultiScan.Backends.Services.Interfaces;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
namespace MalwareMultiScan.Backends.Extensions
{
///
/// Extensions for IServiceCollection.
///
[ExcludeFromCodeCoverage]
public static class ServiceCollectionExtensions
{
///
/// Add scanning backend.
///
/// Service collection.
/// Configuration.
/// Unknown backend.
public static void AddScanBackend(this IServiceCollection services, IConfiguration configuration)
{
services.AddSingleton();
switch (configuration.GetValue("BACKEND_ID"))
{
case "clamav":
services.AddSingleton();
break;
case "drweb":
services.AddSingleton();
break;
case "kes":
services.AddSingleton();
break;
case "comodo":
services.AddSingleton();
break;
case "sophos":
services.AddSingleton();
break;
case "mcafee":
services.AddSingleton();
break;
case "windows-defender":
services.AddSingleton();
break;
default:
services.AddSingleton();
break;
}
}
}
}