public async Task <ActionResult> Update([FromBody] Update update)
        {
            Message  message  = update.Message ?? update.EditedMessage;
            DateTime nearTime = DateTime.Now.AddMinutes(-5.0).ToUniversalTime();

            if (message.Date < nearTime)
            {
                return(new BadRequestResult());
            }
            else if (TelegramCommandHelper.TryParse(message.Text, out String command))
            {
                BaseTelegramCommand baseCommand = _commandFactory.GetTelegramCommand(command);
                try
                {
                    Message resultMessage = await baseCommand.ExecuteAsync(message);
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                    Console.WriteLine(ex.StackTrace);
                }
            }
            else
            {
                await _botClient.SendTextMessageAsync(message.Chat.Id, GeneralMessage.COMMAND_NOT_MATCH_PATTERN, replyToMessageId : message.MessageId);
            }

            return(Ok());
        }
Ejemplo n.º 2
0
        //----------------------------------------------------------------//

        public async Task TestTelegramCommand(String command, Message expectedMessage)
        {
            ServiceProviderMock.TryAddServiceMock <ITelegramBotClient>(new BotClientMock().SetupSendMessage(expectedMessage));

            TelegramCommandFactory telegramCommandFactory = new TelegramCommandFactory(ServiceProviderMock.Provider);
            BaseTelegramCommand    telegramCommand        = telegramCommandFactory.GetTelegramCommand(command);
            Message inputMessage = new Message()
            {
                Text = command, Chat = Chat
            };
            Message resultMessage = null;

            //assert
            try
            {
                resultMessage = await telegramCommand.ExecuteAsync(inputMessage);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }

            Assert.Equal(resultMessage?.Text, expectedMessage.Text);
        }