public async Task <string> Execute(Message msg) { var split = msg.Text.Split(' ', 2); // [команда, параметры] if (split.Length < 2) { return("Не все параметры указаны!"); } var url = await _provider.GetImagesUrl(split[1], Browser.Yandex); if (url.Count == 0) { _logger.LogCritical($"Неудалось получить картинки через Yandex, пробуем получить через DuckDuckGo"); url = await _provider.GetImagesUrl(split[1], Browser.DuckDuckGo); if (url.Count == 0) { _logger.LogCritical($"Неудалось получить картинки через DuckDuckGo"); } } else { _logger.LogCritical($"URL картинок получены, одна из них: {url[0]}"); } // Получить адрес сервера для загрузки картинок в сообщении try { var uploadServer = _vkApi.Photo.GetMessagesUploadServer(0); _logger.LogCritical("Адресс для загрузки получен"); // Загрузить картинки на сервер VK. var imagePath = new List <string>(); foreach (var item in url) { imagePath.Add(await UploadFile(uploadServer.UploadUrl, item, "jpg")); } var attachment = new List <IReadOnlyCollection <Photo> >(); if (imagePath.Count > 0) { // Сохранить загруженный файл foreach (var path in imagePath) { attachment.Add(_vkApi.Photo.SaveMessagesPhoto(path)); } _vkApi.Messages.Send(new MessagesSendParams { PeerId = msg.PeerId.Value, Message = "", Attachments = attachment.SelectMany(x => x), //Вложение RandomId = new DateTime().Millisecond + Guid.NewGuid().ToByteArray().Sum(x => x) }); return($"Картинки по запросу: \"{split[1]}\""); } return($"Картинок по запросу \"{split[1]}\" не найдено"); } catch (Exception e) { _logger.LogCritical($"Произошла ошибка: {e.Message}"); return($"Упс... При поиске картинок по запросу: \"{split[1]}\" что-то пошло не так..."); } }