public TranslateWordsFlow(
     ChatRoom chat,
     AddWordService addWordService,
     TranslationSelectedUpdateHook translationUpdateHookHandler
     )
 {
     Chat            = chat;
     _addWordService = addWordService;
     _translationSelectedUpdateHook = translationUpdateHookHandler;
 }
Example #2
0
        private async Task Initialize()
        {
            //Initialize user
            var user = await _userService.GetUserOrNull(_userInfo);

            if (user == null)
            {
                var addUserTask = _userService.AddUserFromTelegram(_userInfo);
                await ChatIo.SendMessageAsync(_settings.WelcomeMessage);

                user = await addUserTask;
                Botlog.WriteInfo($"New user {user.TelegramNick}", user.TelegramId.ToString(), true);
            }

            Chat = new ChatRoom(ChatIo, user);
            // Initialize update hooks
            _translationSelectedUpdateHook = new TranslationSelectedUpdateHook(_addWordsService, Chat);
            _wellKnownWordsUpdateHook      = new LeafWellKnownWordsUpdateHook(Chat);

            ChatIo.AddUpdateHook(_translationSelectedUpdateHook);
            ChatIo.AddUpdateHook(_wellKnownWordsUpdateHook);

            // Initialize  command handlers
            _addWordCommandHandler = new AddBotCommandHandler(_addWordsService, _translationSelectedUpdateHook);

            ChatIo.CommandHandlers = new[] {
                HelpBotCommandHandler.Instance,
                new StatsBotCommandHandler(_settings.ExamSettings),
                new LearnBotCommandHandler(_userService, _usersWordsService, _settings.ExamSettings),
                _addWordCommandHandler,
                new ShowLearningSetsBotCommandHandler(_learningSetService),
                new ShowWellLearnedWordsCommandHandler(_usersWordsService, _wellKnownWordsUpdateHook),
                new SelectLearningSet(
                    _learningSetService, _localDictionaryService, _userService, _usersWordsService, _addWordsService),
                new StartBotCommandHandler(ShowMainMenu),
                new ChlangBotCommandHandler(_userService)
            };
        }
Example #3
0
 public AddBotCommandHandler(
     AddWordService addWordsService, TranslationSelectedUpdateHook translationSelectedUpdateHook)
 {
     _addWordsService = addWordsService;
     _translationSelectedUpdateHook = translationSelectedUpdateHook;
 }