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