Adding CallbackData parameter to action calls

This commit is contained in:
Florian Zevedei 2024-02-03 01:16:56 +01:00
parent b8fd3badd4
commit d572c353f6
8 changed files with 57 additions and 25 deletions

View File

@ -1,11 +1,12 @@
using TelegramBotBase.Base;
using TelegramBotBase.Form;
namespace TelegramBotBase.Experiments.ActionManager.Actions
{
public static class GuidAction_Extensions
{
public static void AddGuidAction(this ExternalActionManager manager, string method, Func<Guid, UpdateResult, MessageResult, Task> action)
public static void AddGuidAction(this ExternalActionManager manager, string method, Func<Guid, CallbackData, UpdateResult, MessageResult, Task> action)
{
manager.Add(new GuidAction(method, action));
}

View File

@ -7,11 +7,13 @@ namespace TelegramBotBase.Experiments.ActionManager.Actions
{
public string Method { get; set; }
CallbackData? _lastData { get; set; }
Guid? _lastValue { get; set; }
Func<Guid, UpdateResult, MessageResult, Task> Action;
Func<Guid, CallbackData, UpdateResult, MessageResult, Task> Action;
public GuidAction(string method, Func<Guid, UpdateResult, MessageResult, Task> action)
public GuidAction(string method, Func<Guid, CallbackData, UpdateResult, MessageResult, Task> action)
{
Method = method;
Action = action;
@ -32,11 +34,13 @@ namespace TelegramBotBase.Experiments.ActionManager.Actions
if (Guid.TryParse(cd.Value, out g))
_lastValue = g;
_lastData = cd;
return true;
}
public async Task DoAction(UpdateResult ur, MessageResult mr) => await Action(_lastValue.Value, ur, mr);
public async Task DoAction(UpdateResult ur, MessageResult mr) => await Action(_lastValue.Value, _lastData, ur, mr);
public static CallbackData GetCallback(string method, Guid guid) => new CallbackData(method, guid.ToString());

View File

@ -1,11 +1,12 @@
using TelegramBotBase.Base;
using TelegramBotBase.Form;
namespace TelegramBotBase.Experiments.ActionManager.Actions
{
public static class Int32Action_Extensions
{
public static void AddInt32Action(this ExternalActionManager manager, string method, Func<int, UpdateResult, MessageResult, Task> action)
public static void AddInt32Action(this ExternalActionManager manager, string method, Func<int, CallbackData, UpdateResult, MessageResult, Task> action)
{
manager.Add(new Int32Action(method, action));
}

View File

@ -7,11 +7,13 @@ namespace TelegramBotBase.Experiments.ActionManager.Actions
{
public string Method { get; set; }
CallbackData? _lastData { get; set; }
int? _lastValue { get; set; }
Func<int, UpdateResult, MessageResult, Task> Action;
Func<int, CallbackData, UpdateResult, MessageResult, Task> Action;
public Int32Action(string method, Func<int, UpdateResult, MessageResult, Task> action)
public Int32Action(string method, Func<int, CallbackData, UpdateResult, MessageResult, Task> action)
{
Method = method;
Action = action;
@ -33,11 +35,13 @@ namespace TelegramBotBase.Experiments.ActionManager.Actions
if (int.TryParse(cd.Value, out i))
_lastValue = i;
_lastData = cd;
return true;
}
public async Task DoAction(UpdateResult ur, MessageResult mr) => await Action(_lastValue.Value, ur, mr);
public async Task DoAction(UpdateResult ur, MessageResult mr) => await Action(_lastValue.Value, _lastData, ur, mr);
public static CallbackData GetCallback(string method, long l) => new CallbackData(method, l.ToString());
@ -48,11 +52,13 @@ namespace TelegramBotBase.Experiments.ActionManager.Actions
{
public string Method { get; set; }
CallbackData? _lastData { get; set; }
int? _lastValue { get; set; }
Func<int, UpdateResult, MessageResult, Task> Action;
Func<int, CallbackData, UpdateResult, MessageResult, Task> Action;
public Int32Action(string method, Func<int, UpdateResult, MessageResult, Task> action)
public Int32Action(string method, Func<int, CallbackData, UpdateResult, MessageResult, Task> action)
{
Method = method;
Action = action;
@ -73,10 +79,12 @@ namespace TelegramBotBase.Experiments.ActionManager.Actions
if (int.TryParse(cd.Value, out i))
_lastValue = i;
_lastData = cd;
return true;
}
public async Task DoAction(UpdateResult ur, MessageResult mr) => await Action(_lastValue.Value, ur, mr);
public async Task DoAction(UpdateResult ur, MessageResult mr) => await Action(_lastValue.Value, _lastData, ur, mr);
}
}

View File

@ -1,11 +1,12 @@
using TelegramBotBase.Base;
using TelegramBotBase.Form;
namespace TelegramBotBase.Experiments.ActionManager.Actions
{
public static class Int64Action_Extensions
{
public static void AddInt64Action(this ExternalActionManager manager, string method, Func<long, UpdateResult, MessageResult, Task> action)
public static void AddInt64Action(this ExternalActionManager manager, string method, Func<long, CallbackData, UpdateResult, MessageResult, Task> action)
{
manager.Add(new Int64Action(method, action));
}

View File

@ -7,11 +7,13 @@ namespace TelegramBotBase.Experiments.ActionManager.Actions
{
public string Method { get; set; }
CallbackData? _lastData { get; set; }
long? _lastValue { get; set; }
Func<long, UpdateResult, MessageResult, Task> Action;
Func<long, CallbackData, UpdateResult, MessageResult, Task> Action;
public Int64Action(string method, Func<long, UpdateResult, MessageResult, Task> action)
public Int64Action(string method, Func<long, CallbackData, UpdateResult, MessageResult, Task> action)
{
Method = method;
Action = action;
@ -32,11 +34,13 @@ namespace TelegramBotBase.Experiments.ActionManager.Actions
if (long.TryParse(cd.Value, out l))
_lastValue = l;
_lastData = cd;
return true;
}
public async Task DoAction(UpdateResult ur, MessageResult mr) => await Action(_lastValue.Value, ur, mr);
public async Task DoAction(UpdateResult ur, MessageResult mr) => await Action(_lastValue.Value, _lastData, ur, mr);
public static CallbackData GetCallback(string method, long l) => new CallbackData(method, l.ToString());
@ -47,11 +51,13 @@ namespace TelegramBotBase.Experiments.ActionManager.Actions
{
public string Method { get; set; }
CallbackData? _lastData { get; set; }
long? _lastValue { get; set; }
Func<long, UpdateResult, MessageResult, Task> Action;
Func<long, CallbackData, UpdateResult, MessageResult, Task> Action;
public Int64Action(string method, Func<long, UpdateResult, MessageResult, Task> action)
public Int64Action(string method, Func<long, CallbackData, UpdateResult, MessageResult, Task> action)
{
Method = method;
Action = action;
@ -72,10 +78,12 @@ namespace TelegramBotBase.Experiments.ActionManager.Actions
if (long.TryParse(cd.Value, out g))
_lastValue = g;
_lastData = cd;
return true;
}
public async Task DoAction(UpdateResult ur, MessageResult mr) => await Action(_lastValue.Value, ur, mr);
public async Task DoAction(UpdateResult ur, MessageResult mr) => await Action(_lastValue.Value, _lastData, ur, mr);
}
}

View File

@ -1,11 +1,12 @@
using TelegramBotBase.Base;
using TelegramBotBase.Form;
namespace TelegramBotBase.Experiments.ActionManager.Actions
{
public static class StringAction_Extensions
{
public static void AddStringAction(this ExternalActionManager manager, string method, Func<String, UpdateResult, MessageResult, Task> action)
public static void AddStringAction(this ExternalActionManager manager, string method, Func<String, CallbackData, UpdateResult, MessageResult, Task> action)
{
manager.Add(new StringAction(method, action));
}

View File

@ -7,11 +7,13 @@ namespace TelegramBotBase.Experiments.ActionManager.Actions
{
public string Method { get; set; }
CallbackData? _lastData { get; set; }
String? _lastValue { get; set; }
Func<string, UpdateResult, MessageResult, Task> Action;
Func<string, CallbackData, UpdateResult, MessageResult, Task> Action;
public StringAction(string method, Func<string, UpdateResult, MessageResult, Task> action)
public StringAction(string method, Func<string, CallbackData, UpdateResult, MessageResult, Task> action)
{
Method = method;
Action = action;
@ -30,11 +32,13 @@ namespace TelegramBotBase.Experiments.ActionManager.Actions
_lastValue = cd.Value;
_lastData = cd;
return true;
}
public async Task DoAction(UpdateResult ur, MessageResult mr) => await Action(_lastValue, ur, mr);
public async Task DoAction(UpdateResult ur, MessageResult mr) => await Action(_lastValue, _lastData, ur, mr);
public static CallbackData GetCallback(string method, string str) => new CallbackData(method, str);
@ -45,11 +49,13 @@ namespace TelegramBotBase.Experiments.ActionManager.Actions
{
public string Method { get; set; }
CallbackData? _lastData { get; set; }
String? _lastValue { get; set; }
Func<String, UpdateResult, MessageResult, Task> Action;
Func<String, CallbackData, UpdateResult, MessageResult, Task> Action;
public StringAction(string method, Func<String, UpdateResult, MessageResult, Task> action)
public StringAction(string method, Func<String, CallbackData, UpdateResult, MessageResult, Task> action)
{
Method = method;
Action = action;
@ -67,11 +73,13 @@ namespace TelegramBotBase.Experiments.ActionManager.Actions
_lastValue = cd.Value;
_lastData = cd;
return true;
}
public async Task DoAction(UpdateResult ur, MessageResult mr) => await Action(_lastValue, ur, mr);
public async Task DoAction(UpdateResult ur, MessageResult mr) => await Action(_lastValue, _lastData, ur, mr);
}
}