Update FormBase.cs

- making more basic methods virtual for easiert overriding
- adding existing control check to AddControl method
This commit is contained in:
FlorianDahn 2021-06-07 01:33:19 +02:00
parent a00aaacbfb
commit 264a998052

View File

@ -180,7 +180,7 @@ namespace TelegramBotBase.Form
/// </summary> /// </summary>
/// <param name="message"></param> /// <param name="message"></param>
/// <returns></returns> /// <returns></returns>
public async Task LoadControls(MessageResult message) public virtual async Task LoadControls(MessageResult message)
{ {
//Looking for the control by id, if not listened, raise event for all //Looking for the control by id, if not listened, raise event for all
if (message.RawData?.StartsWith("#c") ?? false) if (message.RawData?.StartsWith("#c") ?? false)
@ -228,7 +228,7 @@ namespace TelegramBotBase.Form
/// </summary> /// </summary>
/// <param name="message"></param> /// <param name="message"></param>
/// <returns></returns> /// <returns></returns>
public async Task ActionControls(MessageResult message) public virtual async Task ActionControls(MessageResult message)
{ {
//Looking for the control by id, if not listened, raise event for all //Looking for the control by id, if not listened, raise event for all
if (message.RawData.StartsWith("#c")) if (message.RawData.StartsWith("#c"))
@ -278,7 +278,7 @@ namespace TelegramBotBase.Form
/// </summary> /// </summary>
/// <param name="message"></param> /// <param name="message"></param>
/// <returns></returns> /// <returns></returns>
public async Task RenderControls(MessageResult message) public virtual async Task RenderControls(MessageResult message)
{ {
foreach (var b in this.Controls) foreach (var b in this.Controls)
{ {
@ -400,6 +400,10 @@ namespace TelegramBotBase.Form
/// <param name="control"></param> /// <param name="control"></param>
public void AddControl(ControlBase control) public void AddControl(ControlBase control)
{ {
//Duplicate check
if (this.Controls.Contains(control))
throw new ArgumentException("Control has been already added.");
control.ID = this.Controls.Count + 1; control.ID = this.Controls.Count + 1;
control.Device = this.Device; control.Device = this.Device;
this.Controls.Add(control); this.Controls.Add(control);