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()); }
//----------------------------------------------------------------// 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); }