diff --git a/TelegramBotBase/Base/MessageResult.cs b/TelegramBotBase/Base/MessageResult.cs index 0b86362..f1224c3 100644 --- a/TelegramBotBase/Base/MessageResult.cs +++ b/TelegramBotBase/Base/MessageResult.cs @@ -21,6 +21,9 @@ public class MessageResult : ResultBase { IsAction = UpdateData.CallbackQuery != null; + if (Message == null) + return; + IsBotCommand = Message.Entities?.Any(a => a.Type == MessageEntityType.BotCommand) ?? false; if (!IsBotCommand) diff --git a/TelegramBotBase/BotBase.cs b/TelegramBotBase/BotBase.cs index 5a50823..c073e21 100644 --- a/TelegramBotBase/BotBase.cs +++ b/TelegramBotBase/BotBase.cs @@ -116,7 +116,7 @@ public sealed class BotBase if (ds == null) { ds = await Sessions.StartSession(e.DeviceId); - ds.LastMessage = e.RawData.Message; + ds.LastMessage = e.Message; OnSessionBegins(new SessionBeginEventArgs(e.DeviceId, ds)); } diff --git a/TelegramBotBase/Builder/BotBaseBuilder.cs b/TelegramBotBase/Builder/BotBaseBuilder.cs index 1baeba2..3d95e75 100644 --- a/TelegramBotBase/Builder/BotBaseBuilder.cs +++ b/TelegramBotBase/Builder/BotBaseBuilder.cs @@ -73,14 +73,14 @@ public class BotBaseBuilder : IAPIKeySelectionStage, IMessageLoopSelectionStage, } - public IBuildingStage QuickStart(string apiKey, Type startForm) + public IBuildingStage QuickStart(string apiKey, Type startForm, bool throwPendingUpdates = false) { _apiKey = apiKey; _factory = new DefaultStartFormFactory(startForm); DefaultMessageLoop(); - NoProxy(); + NoProxy(throwPendingUpdates); OnlyStart(); @@ -94,7 +94,7 @@ public class BotBaseBuilder : IAPIKeySelectionStage, IMessageLoopSelectionStage, } - public IBuildingStage QuickStart(string apiKey) + public IBuildingStage QuickStart(string apiKey, bool throwPendingUpdates = false) where T : FormBase { _apiKey = apiKey; @@ -102,7 +102,7 @@ public class BotBaseBuilder : IAPIKeySelectionStage, IMessageLoopSelectionStage, DefaultMessageLoop(); - NoProxy(); + NoProxy(throwPendingUpdates); OnlyStart(); @@ -115,14 +115,14 @@ public class BotBaseBuilder : IAPIKeySelectionStage, IMessageLoopSelectionStage, return this; } - public IBuildingStage QuickStart(string apiKey, IStartFormFactory startFormFactory) + public IBuildingStage QuickStart(string apiKey, IStartFormFactory startFormFactory, bool throwPendingUpdates = false) { _apiKey = apiKey; _factory = startFormFactory; DefaultMessageLoop(); - NoProxy(); + NoProxy(throwPendingUpdates); OnlyStart(); diff --git a/TelegramBotBase/Builder/Interfaces/IAPIKeySelectionStage.cs b/TelegramBotBase/Builder/Interfaces/IAPIKeySelectionStage.cs index bcbe23b..45d439f 100644 --- a/TelegramBotBase/Builder/Interfaces/IAPIKeySelectionStage.cs +++ b/TelegramBotBase/Builder/Interfaces/IAPIKeySelectionStage.cs @@ -20,16 +20,18 @@ public interface IAPIKeySelectionStage /// /// /// + /// Indicates if all pending Telegram.Bot.Types.Updates should be thrown out before start polling. /// - IBuildingStage QuickStart(string apiKey, Type StartForm); + IBuildingStage QuickStart(string apiKey, Type StartForm, bool throwPendingUpdates = false); /// /// Quick and easy way to create a BotBase instance. /// Uses: DefaultMessageLoop, NoProxy, OnlyStart, NoSerialization, DefaultLanguage /// /// + /// Indicates if all pending Telegram.Bot.Types.Updates should be thrown out before start polling. /// - IBuildingStage QuickStart(string apiKey) where T : FormBase; + IBuildingStage QuickStart(string apiKey , bool throwPendingUpdates = false) where T : FormBase; /// /// Quick and easy way to create a BotBase instance. @@ -37,6 +39,7 @@ public interface IAPIKeySelectionStage /// /// /// + /// Indicates if all pending Telegram.Bot.Types.Updates should be thrown out before start polling. /// - IBuildingStage QuickStart(string apiKey, IStartFormFactory StartFormFactory); + IBuildingStage QuickStart(string apiKey, IStartFormFactory StartFormFactory, bool throwPendingUpdates = false); } \ No newline at end of file