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; } } } }