Example #1
0
        public async Task Register(string username)
        {
            _cache.Create(Context.ConnectionId, username);

            string message = $"{username} : {Context.ConnectionId}";
            await Clients.Caller.SendAsync("registered", message, Context.ConnectionId);
        }
        public void Create_AddValidKey_CacheCreatedSuccessfully()
        {
            // Arrange

            // Act
            _service.Create("createTest", "testobj");

            // Assert
            var hit = _service.TryGet("createTest");

            hit.Should().NotBeNull();
            (hit as string).Should().Be("testobj");
        }
        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();
        }