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)); }
public async Task AnswerCallbackQuery(AnswerCallbackQuery answerCallbackQuery) { var httpContent = new StringContent(JsonConvert.SerializeObject(answerCallbackQuery, _ignoreNullSerializer), Encoding.UTF8, "application/json"); var responseMessage = await _httpClient.PostAsync($"{_httpClient.BaseAddress}{_settings.BotKey}/answerCallbackQuery", httpContent); var responseContent = await responseMessage.Content.ReadAsStringAsync(); if (!responseMessage.IsSuccessStatusCode) { // todo: how to handle errors? _logger.LogError($"Failed {responseMessage.StatusCode} - {responseContent}"); } }
public async Task <bool> AnswerCallbackQuery(AnswerCallbackQuery answerCallbackQuery) { var url = $"{TelegramApiUrl}/bot{_apiToken}/answerCallbackQuery"; var content = new StringContent(JsonConvert.SerializeObject(answerCallbackQuery, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore }), Encoding.UTF8, "application/json"); using HttpClient client = new HttpClient(); using HttpResponseMessage response = await client.PostAsync(url, content); if (!response.IsSuccessStatusCode) { throw new Exception(await response.Content.ReadAsStringAsync()); } return(true); }
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)); }
public static ValidationResult <AnswerCallbackQuery> CreateValidation(this AnswerCallbackQuery value) => new ValidationResult <AnswerCallbackQuery>(value).ValidateRequired(x => x.CallbackQueryId);