From 65af3ded912dff1fcb4d8e222948c8e849d7dedf Mon Sep 17 00:00:00 2001 From: Ruberoid Date: Mon, 21 Jul 2025 14:59:21 +0300 Subject: [PATCH] fixed modern style for ensuring props are not null and extracting values. --- .../Handlers/BaseHandlers/StartHandlerBase.cs | 32 +++++++------------ .../SubscribeHandlerBase.cs | 3 +- 2 files changed, 13 insertions(+), 22 deletions(-) diff --git a/src/Nocr.TelegramClient.AppServices/Handlers/BaseHandlers/StartHandlerBase.cs b/src/Nocr.TelegramClient.AppServices/Handlers/BaseHandlers/StartHandlerBase.cs index 4fff273..3d2323e 100644 --- a/src/Nocr.TelegramClient.AppServices/Handlers/BaseHandlers/StartHandlerBase.cs +++ b/src/Nocr.TelegramClient.AppServices/Handlers/BaseHandlers/StartHandlerBase.cs @@ -28,24 +28,12 @@ public abstract class StartHandlerBase public async Task Handle(Update update, CancellationToken cancellationToken = default) { - if (update.Message?.From is null || update.CallbackQuery?.Message is null) + long telegramId = update.Type switch { - _logger.LogError("Не удалось выделить пользовательский колбэк.\n{@Update}", update); - return; - } - - long telegramId; - switch (update.Type) - { - case UpdateType.Message: - telegramId = update.Message.From.Id; - break; - case UpdateType.CallbackQuery: - telegramId = update.CallbackQuery.From.Id; - break; - default: - throw new ArgumentOutOfRangeException(nameof(update.Type), "Unsupported update type"); - } + UpdateType.Message when update.Message?.From is { } from => from.Id, + UpdateType.CallbackQuery when update.CallbackQuery?.From is { } from => from.Id, + _ => throw new ArgumentOutOfRangeException(nameof(update.Type), "Unsupported update type or missing From.") + }; var message = new TextMessage(telegramId) { @@ -54,16 +42,18 @@ public abstract class StartHandlerBase ReplyMarkup = GetKeyboard() }; - if (update.Type == UpdateType.CallbackQuery) + if (update is { Type: UpdateType.CallbackQuery, CallbackQuery.Message: { } m }) { - var messageId = update.CallbackQuery.Message.MessageId; - if (update.CallbackQuery.Message.Type == MessageType.Text) + var messageId = m.MessageId; + + if (m.Type == MessageType.Text) { await Bot.EditMessageTextAsync(messageId, message, cancellationToken); return; } - var chatId = update.CallbackQuery.Message.Chat.Id; + var chatId = m.Chat.Id; + try { await Bot.DeleteMessageAsync(chatId, messageId, cancellationToken); diff --git a/src/Nocr.TelegramClient.AppServices/Handlers/Messages/SubscribeExactMessage/SubscribeHandlerBase.cs b/src/Nocr.TelegramClient.AppServices/Handlers/Messages/SubscribeExactMessage/SubscribeHandlerBase.cs index 4274981..06048a0 100644 --- a/src/Nocr.TelegramClient.AppServices/Handlers/Messages/SubscribeExactMessage/SubscribeHandlerBase.cs +++ b/src/Nocr.TelegramClient.AppServices/Handlers/Messages/SubscribeExactMessage/SubscribeHandlerBase.cs @@ -28,7 +28,8 @@ public abstract class SubscribeHandlerBase : ViewSubscriptionHandlerBase { if (update.Message?.Text is null || update.Message?.From is null) { - _logger.LogError("Не удалось выделить пользовательское сообщение.\n{@Update}", update); + _logger.LogError("Cannot parse update message or from/text user unknown. {@Update}", update.Id); + _logger.LogDebug(update.ToString()); return; }