using System.Threading.Tasks; using TelegramBotBase.Sessions; namespace TelegramBotBase.Base { /// /// Base class for controls /// public class ControlBase { public DeviceSession Device { get; set; } public int Id { get; set; } public string ControlId => "#c" + Id; /// /// Defines if the control should be rendered and invoked with actions /// public bool Enabled { get; set; } = true; /// /// Get invoked when control will be added to a form and invoked. /// /// public virtual void Init() { } public virtual Task Load(MessageResult result) { return Task.CompletedTask; } public virtual Task Action(MessageResult result, string value = null) { return Task.CompletedTask; } public virtual Task Render(MessageResult result) { return Task.CompletedTask; } public virtual Task Hidden(bool formClose) { return Task.CompletedTask; } /// /// Will be called on a cleanup. /// /// public virtual Task Cleanup() { return Task.CompletedTask; } } }