using AIK.Common.Enum; using AIK.Service.IService; using AIK.Service.Service; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace AIK.Service.Extensions { public class FileServiceFactory : IFileServiceFactory { private readonly FileOBDService _obdService; private readonly FileBinService _binService; private readonly FileCloudDataService _cloudDataService; public FileServiceFactory(FileOBDService obdService, FileBinService binService, FileCloudDataService cloudDataService) { _obdService = obdService; _binService = binService; _cloudDataService = cloudDataService; } public IFileCacheService GetService(FileServiceType type) => type switch { FileServiceType.BIN => _binService, FileServiceType.OBD => _obdService, FileServiceType.CloudData => _cloudDataService, _ => throw new ArgumentException("Unsupported type") }; } }