Telegram.Bot.Framework
Telegram.Bot.Framework copied to clipboard
Redesign IUpdateManager interface and implementation
Scoped lifetime of IUpdateManager<TBot> and polling functionality built in it don't play well together. An entity that performs polling should be a singleton.
IUpdateManager<TBot> functionality should be split to two interfaces:
-
IUpdateDispatcher<TBot>that performs dispatching and could has either scoped or transient lifetime - An entity that performs actual polling and has dependency on a factory that creates
IUpdateDisptacher<TBot>instance and has singleton lifetime so it correctly incapsulates update offset