private static async Task HandleImport(IServiceProvider services, ImportCmd opts) { S3FileImporter importer = opts.Type switch { "hourly" => new HourlyLogsImporter(services, opts.SourceId), "gamelogs" => new GameLogsImporter(services, opts.SourceId), "idols" => new IdolLogsImporter(services, opts.SourceId), "mongotributes" => new MongodbTributesImporter(services, opts.SourceId), _ => throw new ArgumentException($"Unknown import type {opts.Type}") }; await importer.Run(new S3ImportOptions { Directory = opts.Directory }); } }
private static async Task HandleImport(IServiceProvider services, ImportCmd opts) { FileImporter importer = opts.Type switch { "hourly" => new HourlyLogsImporter(services, opts.SourceId ?? throw new ArgumentException("Source ID is required")), "gamelogs" => new GameLogsImporter(services, opts.SourceId ?? throw new ArgumentException("Source ID is required")), "idols" => new IdolLogsImporter(services, opts.SourceId ?? throw new ArgumentException("Source ID is required")), "mongotributes" => new MongodbTributesImporter(services, opts.SourceId ?? throw new ArgumentException("Source ID is required")), "raw" => new RawImporter(services), "v2" => new IlianaV2Importer(services, opts.SourceId ?? throw new ArgumentException("Source ID is required")), _ => throw new ArgumentException($"Unknown import type {opts.Type}") }; await importer.Run(new ImportOptions { Directory = opts.Directory, After = opts.After, Before = opts.Before }); } }