Beispiel #1
0
        public async Task <bool> DeleteMessage(TelegramDeleteMessage telegramDeleteMessage)
        {
            var url     = $"{TELEGRAM_API_URL}/bot{_apiToken}/deleteMessage";
            var content = new StringContent(JsonConvert.SerializeObject(telegramDeleteMessage, new JsonSerializerSettings
            {
                NullValueHandling = NullValueHandling.Ignore
            }), Encoding.UTF8, "application/json");

            using (HttpClient client = new HttpClient())
                using (HttpResponseMessage response = await client.PostAsync(url, content))
                    return(response.IsSuccessStatusCode);
        }
Beispiel #2
0
        public async Task <bool> QuerySheetAsync(int linkedMessageId, string callbackQueryId, int chatId, int scale)
        {
            var coordinates = await _amazonDynamoDbService.QueryAsync(chatId);

            var sheets = _sheetService.GetSheetsByCoordinate(coordinates.lat, coordinates.lon, scale).ToList();

            if (!sheets.Any())
            {
                return(false);
            }

            var deleteMessage = new TelegramDeleteMessage
            {
                ChatId    = chatId,
                MessageId = linkedMessageId
            };
            await _telegramService.DeleteMessage(deleteMessage);

            var answerCallbackQuery = new AnswerCallbackQuery
            {
                CallbackQueryId = callbackQueryId,
                Text            = "Sorgu tamamlandı."
            };

            await _telegramService.AnswerCallbackQuery(answerCallbackQuery);

            string messageText;

            if (sheets.Count() > 1)
            {
                messageText = "Birden fazla pafta ile kesişiyor:";
                foreach (var sheetDto in sheets)
                {
                    messageText += "\n" + sheetDto.Name;
                }
            }
            else
            {
                messageText = sheets.FirstOrDefault().Name;
            }

            messageText += $"\nÖlçek: 1:{scale}.000";
            messageText += $"\nKoordinatlar: {coordinates.lat:F6}, {coordinates.lon:F6}";

            var message = new TelegramMessage
            {
                ChatId = chatId.ToString(),
                Text   = messageText
            };

            return(await _telegramService.SendMessage(message));
        }
Beispiel #3
0
        public async Task <bool> SetMagnitudeAsync(int linkedMessageId, string callbackQueryId, int chatId, double magnitude)
        {
            var updateRequest = _updateRequestBuilder
                                .CreateRequest(chatId)
                                .SetMagnitude(magnitude)
                                .Build();

            var updateResult = await _subscribtionStore.UpdateAsync(updateRequest);

            if (!updateResult)
            {
                return(false);
            }

            var deleteMessage = new TelegramDeleteMessage
            {
                ChatId    = chatId,
                MessageId = linkedMessageId
            };
            await _telegramService.DeleteMessage(deleteMessage);

            var answerCallbackQuery = new AnswerCallbackQuery
            {
                CallbackQueryId = callbackQueryId,
                Text            = string.Format(BotDialog.REPLY_MAGNITUDE, magnitude)
            };
            await _telegramService.AnswerCallbackQuery(answerCallbackQuery);

            var message = new TelegramMessage
            {
                ChatId = chatId.ToString(),
                Text   = string.Format(BotDialog.REPLY_MAGNITUDE, magnitude)
            };

            return(await _telegramService.SendMessage(message));
        }