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); } } }