Exemple #1
0
        public override async Task HandleAsync(CallbackQueryUpdateMessage message)
        {
            var source = _sourceRepository.GetByExternalId(message.ChatId)
                         ?? throw new ArgumentException($"Can't perfom {Button} command, there is no source with id {message.ChatId}");

            var metrics = _metricRepository.GetBySourceIdWithValues(source.Id);

            if (metrics == null || !metrics.Any())
            {
                await _botClient.SendTextMessageAsync(message, MessageCode.NoMetrics);

                return;
            }

            var options = new JsonSerializerOptions()
            {
                WriteIndented = true,
                Encoder       = JavaScriptEncoder.Create(UnicodeRanges.All),
            };

            var bytes    = JsonSerializer.SerializeToUtf8Bytes(metrics, options);
            var filename = FileName.GetJsonFilename(message.UpdateId.ToString());
            await _botClient.SendFileAsync(message.ChatId, bytes, filename);
        }