public TgSession(ITelegramBotClient telegramApi, AuthBase authHandler, TgSessionCmdHandler mainHandler) { TelegramApi = telegramApi; AuthHandler = authHandler; MainHandler = mainHandler; HandlersStack = new Stack <TgSessionCmdHandler>(); Initialize(mainHandler); }
public TgSessionCmdHandler StartHandler(TgSessionCmdHandler tgCmdHandler, Message msg = null) { lock (HandlersStack) { HandlersStack.Push(tgCmdHandler); Initialize(tgCmdHandler); if (msg != null) { tgCmdHandler.OnStart(msg); } } return(tgCmdHandler); }
public void Exit(TgSessionCmdHandler tgCmdHandler) { lock (HandlersStack) { if (HandlersStack.Contains(tgCmdHandler)) { while (HandlersStack.Count > 0) { var last = HandlersStack.Pop(); if (last == tgCmdHandler) { break; } } } } }
protected void Initialize(TgSessionCmdHandler tgCmdHandler) { tgCmdHandler.Session = this; tgCmdHandler.TelegramApi = TelegramApi; tgCmdHandler.Initialize(); }