public async Task <ConverterResponse> ConvertAsync(string fromAsset, string toAsset, decimal amount) { try { var result = await _converterService.ConvertAsync(fromAsset, toAsset, amount); return(new ConverterResponse { Amount = result, ErrorCode = ConverterErrorCode.None }); } catch (EntityNotFoundException) { return(new ConverterResponse { ErrorCode = ConverterErrorCode.NoRate }); } }
private async Task HandleMessage(string message) { _logger.LogInformation($"client received {message}"); var stickerFromClient = JsonConvert.DeserializeObject <StickerRabbitDto>(message); var chatId = stickerFromClient.TelegramChatId; var messageId = stickerFromClient.TelegramMessageId; var stickerId = stickerFromClient.StickerId; var uniqueStickerId = stickerFromClient.StickerUniqueId; // Качаем стикер с телеграма var fileInfo = await _telegramBotService.DownloadFileAsync(stickerId); // Конвертируем из .tgs или .webp в .gif var convertedFileInfo = await _converterService.ConvertAsync(fileInfo); var fileData = await File.ReadAllBytesAsync(Constants.ConverterPath + convertedFileInfo.Name); // Загружаем на Giphy var uploadResult = await _giphyService.UploadFileAsync(fileData); // Получаем информацию о загруженной Gif var getResult = await _giphyService.GetGifAsync(uploadResult.Data.Id); // Добавляем запись в кэш _cacheService.Create(new Sticker { GiphyUrl = getResult.Data.Url, UniqueStickerId = uniqueStickerId }); // Отправляем пользователю ссылку await _telegramBotService.SendMessageAsync(chatId, messageId, getResult.Data.Url); // Удаляем скачанный и сконвертированный файлы DeleteTmpFiles(); }