Files
Better-Seewo/Manager/Services/CustomConversionService.cs

61 lines
1.7 KiB
C#

using System;
using System.IO;
using System.Threading.Tasks;
using BetterSeewo.Manager.Services.Conversion;
namespace BetterSeewo.Manager.Services
{
public class CustomConversionService : IConversionService
{
private readonly ConversionEngine _engine = new();
public async Task<string> ConvertPptxToEnbxAsync(string pptxPath)
{
return await _engine.ConvertPptxToEnbxAsync(pptxPath);
}
public async Task<string> ConvertEnbxToPptxAsync(string enbxPath)
{
return await _engine.ConvertEnbxToPptxAsync(enbxPath);
}
public Task FixConversionErrorsAsync()
{
_engine.FixConversionErrors();
return Task.CompletedTask;
}
public async Task<string> 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}";
}
}
}