Ejemplo n.º 1
0
        ///--------------------------------------------------------------------------------------------------------
        ///
        public override async Task OnMessage(Telegram.Bot.Types.Message message)
        {
            await base.OnMessage(message);

            string msg = message.Text.Trim();

            long requesterId = message.Chat.Id;

            if (requesterId != otpWaitUserId)
            {
                return;
            }

            switch (commandState)
            {
            case eCommandState.InputWaitOtp:
            {
                IsCompleted = true;

                string otpStr = message.Text.Trim();

                if (OtpChecker.CheckOtp(otpStr))
                {
                    string requesterName = message.Chat.Username;

                    await SendMessage(requesterId, strings.Format("{0} 지갑을 재기동합니다.", requesterName));

                    bool success = await Restart(restartParams);

                    string response = strings.Format("재기동 완료. 결과 : {0}", success ? "Success" : "Failed");

                    await SendMessage(requesterId, response);

                    Logger.Log("재기동 완료. {0}\n", success ? "Success" : "Failed");

                    if (success && Config.StartupAutoStaking)
                    {
                        ICommand autoStaking = CommandFactory.CreateCommand(eCommand.StartStaking);
                        if (autoStaking != null)
                        {
                            await autoStaking.Process(requesterId, requesterName, DateTimeHandler.GetTimeZoneNow());
                        }
                    }
                }
                else
                {
                    await SendMessage(requesterId, strings.GetString("Otp 인증에 실패 했습니다."));
                }
            }
            break;
            }
        }
        ///--------------------------------------------------------------------------------------------------------
        /// 기동 시 자동 스테이킹 시작
        private async static Task StartupAutoStaking()
        {
            if (Config.StartupAutoStaking)
            {
                Logger.Log("StartupAutoStaking");

                await UserList.ForeachSendMsg(strings.Format("자동 채굴 시작이 설정되어 있습니다. 채굴을 시작합니다."));

                Command.ICommand command = Command.CommandFactory.CreateCommand(Command.eCommand.StartStaking);

                if (command != null)
                {
                    await command.Process(-1, "", DateTimeHandler.GetTimeZoneNow());
                }
            }
        }