public async Task Init() { _textCommandHandlers = _factory.CreateTextCommandHandler(); await _botClient.SetMyCommandsAsync(new List <BotCommand> { new() { Command = "/start", Description = "Start bot" } }).ConfigureAwait(false);
public ITextCommandHandler CreateTextCommandHandler() { LoadReaders(); var bankSettings = _appSettings.BankSettings .Where(x => x.Enabled) .Select(x => x.Name).ToList(); ITextCommandHandler root = null; ITextCommandHandler last = null; foreach (var type in GetFilesStartsWith("CommandHandler.", typeof(TextCommandHandler)) .OrderBy(x => bankSettings.IndexOf(GetName(x)))) { try { var name = GetName(type); var reader = _rateReaders.SingleOrDefault(x => string.Equals(x.Name, name, StringComparison.OrdinalIgnoreCase)); if (reader == null) { throw new Exception($"There is no reader for '{name}'"); } ITextCommandHandler instance = (ITextCommandHandler)Activator.CreateInstance(type, _logger, reader); if (root == null) { root = last = instance; } else { last = last.SetNext(instance); } } catch (Exception e) { _logger.LogError(e.ToString()); } } return(root); }
public LionCommandHandler(ILogger logger, IExchangeRateReader exchangeRateReader, ITextCommandHandler handler) : this(logger, exchangeRateReader) { base.SetNext(handler); }
public ITextCommandHandler SetNext(ITextCommandHandler handler) { return(_nextHandler = handler); }