using System; using System.IO; using System.Threading.Tasks; using BetterEN5.Services.Conversion; namespace BetterEN5.Services { public class CustomConversionService : IConversionService { private readonly ConversionEngine _engine = new(); public async Task ConvertPptxToEnbxAsync(string pptxPath) { return await _engine.ConvertPptxToEnbxAsync(pptxPath); } public async Task ConvertEnbxToPptxAsync(string enbxPath) { return await _engine.ConvertEnbxToPptxAsync(enbxPath); } public Task FixConversionErrorsAsync() { _engine.FixConversionErrors(); return Task.CompletedTask; } public async Task BatchConvertAsync(string[] inputPaths, string outputDir, bool toEnbx) { int success = 0; int failed = 0; if (!Directory.Exists(outputDir)) Directory.CreateDirectory(outputDir); foreach (var input in inputPaths) { try { var fileName = Path.GetFileNameWithoutExtension(input); var ext = toEnbx ? ".enbx" : ".pptx"; var output = Path.Combine(outputDir, fileName + ext); if (toEnbx) await _engine.ConvertPptxToEnbxAsync(input); else await _engine.ConvertEnbxToPptxAsync(input); success++; } catch { failed++; } } return $"批量转换完成,成功: {success},失败: {failed}"; } } }