namespace BotPages.Core
{
///
/// Транспорт-независимая реализация отправки пачек через клиент.
///
public sealed class DefaultFileService : IFileService
{
///
/// Заглушка загрузки файла (реализуется в адаптере транспорта).
///
public Task DownloadAsync(string fileId, CancellationToken ct)
{
throw new System.NotImplementedException("DownloadAsync должен быть реализован конкретным транспортным адаптером.");
}
///
/// Загружает несколько файлов по идентификаторам.
///
public async Task> DownloadManyAsync(IEnumerable fileIds, CancellationToken ct)
{
var res = new List();
foreach (var id in fileIds)
res.Add(await DownloadAsync(id, ct));
return res;
}
///
/// Отправляет один файл через клиент.
///
public Task SendAsync(IChatClient client, long chatId, FileDescriptor file, CancellationToken ct)
{
return client.SendFilesAsync(chatId, new[] { file }, ct);
}
///
/// Отправляет несколько файлов через клиент.
///
public Task SendManyAsync(IChatClient client, long chatId, IEnumerable files, CancellationToken ct)
{
return client.SendFilesAsync(chatId, files, ct);
}
}
}