예제 #1
0
 public ShowWellKnownWordsFlow(
     ChatRoom chat,
     UsersWordsService usersWordsService,
     LeafWellKnownWordsUpdateHook wellKnownWordsUpdateHook)
 {
     Chat = chat;
     _usersWordsService        = usersWordsService;
     _wellKnownWordsUpdateHook = wellKnownWordsUpdateHook;
 }
예제 #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)
            };
        }
예제 #3
0
 public ShowWellLearnedWordsCommandHandler(UsersWordsService userWordsService, LeafWellKnownWordsUpdateHook wellKnownWordsUpdateHook)
 {
     _userWordsService         = userWordsService;
     _wellKnownWordsUpdateHook = wellKnownWordsUpdateHook;
 }