Adding SaveSessionState to SessionBase

Feature request: https://github.com/MajMcCloud/TelegramBotFramework/issues/2
This commit is contained in:
FlorianDahn 2020-11-22 23:15:31 +01:00
parent 259fa54236
commit c2e33da277
2 changed files with 20 additions and 7 deletions

View File

@ -33,7 +33,7 @@ namespace TelegramBotBase
/// <summary>
/// List of all running/active sessions
/// </summary>
public SessionBase Sessions { get; set; }
public SessionBase<T> Sessions { get; set; }
/// <summary>
/// Contains System commands which will be available at everytime and didnt get passed to forms, i.e. /start
@ -79,7 +79,8 @@ namespace TelegramBotBase
this.BotCommands = new List<BotCommand>();
this.Sessions = new SessionBase();
this.Sessions = new SessionBase<T>();
this.Sessions.BotBase = this;
}
/// <summary>
@ -193,10 +194,7 @@ namespace TelegramBotBase
this.Client.TelegramClient.StopReceiving();
if (this.StateMachine != null)
{
this.Sessions.SaveSessionStates(this.StateMachine);
}
this.Sessions.SaveSessionStates();
}
/// <summary>

View File

@ -16,12 +16,15 @@ namespace TelegramBotBase
/// <summary>
/// Base class for managing all active sessions
/// </summary>
public class SessionBase
public class SessionBase<T>
where T : FormBase
{
public MessageClient Client { get; set; }
public Dictionary<long, DeviceSession> SessionList { get; set; }
public BotBase<T> BotBase { get; set; }
public SessionBase()
{
@ -295,5 +298,17 @@ namespace TelegramBotBase
statemachine.SaveFormStates(new SaveStatesEventArgs(sc));
}
/// <summary>
/// Saves all open states into the machine.
/// </summary>
public void SaveSessionStates()
{
if (this.BotBase.StateMachine == null)
return;
this.SaveSessionStates(this.BotBase.StateMachine);
}
}
}