From 91048b4f7cea6695f69d58351efdf13098cf8300 Mon Sep 17 00:00:00 2001 From: FlorianDahn Date: Sat, 27 Feb 2021 20:51:47 +0100 Subject: [PATCH] Async invoke fixes and ButtonGrid update - removing unused imports - adding null check for async handler invokes - fixing PageCount calculation on ButtonGrid --- TelegramBotBase/Base/FormBase.cs | 15 ++++++++++++--- TelegramBotBase/Controls/Hybrid/ButtonGrid.cs | 5 ++++- TelegramBotBase/Controls/Hybrid/MultiView.cs | 1 - .../Controls/Hybrid/TaggedButtonGrid.cs | 7 +++++-- TelegramBotBase/Form/GroupForm.cs | 1 - TelegramBotBase/Form/SplitterForm.cs | 2 +- 6 files changed, 22 insertions(+), 9 deletions(-) diff --git a/TelegramBotBase/Base/FormBase.cs b/TelegramBotBase/Base/FormBase.cs index 16d3bde..a995eb4 100644 --- a/TelegramBotBase/Base/FormBase.cs +++ b/TelegramBotBase/Base/FormBase.cs @@ -55,7 +55,10 @@ namespace TelegramBotBase.Form if (this.Events[__evInit] == null) return; - var handler = this.Events[__evInit].GetInvocationList().Cast>(); + var handler = this.Events[__evInit]?.GetInvocationList().Cast>(); + if (handler == null) + return; + foreach (var h in handler) { await Async.InvokeAllAsync(h, this, e); @@ -84,7 +87,10 @@ namespace TelegramBotBase.Form if (this.Events[__evOpened] == null) return; - var handler = this.Events[__evOpened].GetInvocationList().Cast>(); + var handler = this.Events[__evOpened]?.GetInvocationList().Cast>(); + if (handler == null) + return; + foreach (var h in handler) { await Async.InvokeAllAsync(h, this, e); @@ -114,7 +120,10 @@ namespace TelegramBotBase.Form if (this.Events[__evClosed] == null) return; - var handler = this.Events[__evClosed].GetInvocationList().Cast>(); + var handler = this.Events[__evClosed]?.GetInvocationList().Cast>(); + if (handler == null) + return; + foreach (var h in handler) { await Async.InvokeAllAsync(h, this, e); diff --git a/TelegramBotBase/Controls/Hybrid/ButtonGrid.cs b/TelegramBotBase/Controls/Hybrid/ButtonGrid.cs index ad9a19c..d92fd38 100644 --- a/TelegramBotBase/Controls/Hybrid/ButtonGrid.cs +++ b/TelegramBotBase/Controls/Hybrid/ButtonGrid.cs @@ -149,7 +149,10 @@ namespace TelegramBotBase.Controls.Hybrid public async Task OnButtonClicked(ButtonClickedEventArgs e) { - var handler = this.Events[__evButtonClicked].GetInvocationList().Cast>(); + var handler = this.Events[__evButtonClicked]?.GetInvocationList().Cast>(); + if (handler == null) + return; + foreach (var h in handler) { await Async.InvokeAllAsync(h, this, e); diff --git a/TelegramBotBase/Controls/Hybrid/MultiView.cs b/TelegramBotBase/Controls/Hybrid/MultiView.cs index 69ec518..1f66264 100644 --- a/TelegramBotBase/Controls/Hybrid/MultiView.cs +++ b/TelegramBotBase/Controls/Hybrid/MultiView.cs @@ -6,7 +6,6 @@ using System.Text; using System.Threading.Tasks; using TelegramBotBase.Args; using TelegramBotBase.Base; -using static TelegramBotBase.Base.Async; namespace TelegramBotBase.Controls.Hybrid { diff --git a/TelegramBotBase/Controls/Hybrid/TaggedButtonGrid.cs b/TelegramBotBase/Controls/Hybrid/TaggedButtonGrid.cs index f2ccae9..1da91b1 100644 --- a/TelegramBotBase/Controls/Hybrid/TaggedButtonGrid.cs +++ b/TelegramBotBase/Controls/Hybrid/TaggedButtonGrid.cs @@ -160,7 +160,10 @@ namespace TelegramBotBase.Controls.Hybrid public async Task OnButtonClicked(ButtonClickedEventArgs e) { - var handler = this.Events[__evButtonClicked].GetInvocationList().Cast>(); + var handler = this.Events[__evButtonClicked]?.GetInvocationList().Cast>(); + if (handler == null) + return; + foreach (var h in handler) { await Async.InvokeAllAsync(h, this, e); @@ -759,7 +762,7 @@ namespace TelegramBotBase.Controls.Hybrid if (bf.Rows == 0) return 1; - return (int)Math.Ceiling((decimal)(bf.Rows / (decimal)(MaximumRow - 3))); + return (int)Math.Ceiling((decimal)(bf.Rows / (decimal)(MaximumRow - this.LayoutRows))); } } diff --git a/TelegramBotBase/Form/GroupForm.cs b/TelegramBotBase/Form/GroupForm.cs index b610de1..3cfc949 100644 --- a/TelegramBotBase/Form/GroupForm.cs +++ b/TelegramBotBase/Form/GroupForm.cs @@ -5,7 +5,6 @@ using System.Text; using System.Threading.Tasks; using TelegramBotBase.Args; using TelegramBotBase.Base; -using static TelegramBotBase.Base.Async; namespace TelegramBotBase.Form { diff --git a/TelegramBotBase/Form/SplitterForm.cs b/TelegramBotBase/Form/SplitterForm.cs index d547187..89b3ce7 100644 --- a/TelegramBotBase/Form/SplitterForm.cs +++ b/TelegramBotBase/Form/SplitterForm.cs @@ -4,7 +4,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using TelegramBotBase.Base; -using static TelegramBotBase.Base.Async; + namespace TelegramBotBase.Form {