private SupportedAction GetAction(Message message, CommandBase <Bot, Config> command) { if (message.ForwardFrom != null) { if ((CurrentQuery != null) && (message.Date > CurrentQueryTime)) { CurrentQuery = null; } return(new ForwardAction(this, message)); } if (command != null) { return(new CommandAction(this, message, command)); } if (int.TryParse(message.Text, out int number)) { return(new NumberAction(this, message, number)); } if (Articles.Manager.TryParseArticle(message.Text, out Article article)) { return(new ArticleAction(this, message, article)); } if (FindQuery.TryParseFindQuery(message.Text, out FindQuery findQuery)) { return(new FindQueryAction(this, message, findQuery)); } if (MarkQuery.TryParseMarkQuery(message.Text, out MarkQuery markQuery)) { if (message.ReplyToMessage == null) { return(new RememberMarkAction(this, message, markQuery)); } if (message.ReplyToMessage.ForwardFrom != null) { return(new MarkAction(this, message, message.ReplyToMessage, markQuery)); } } return(null); }
public MarkAction(Bot.Bot bot, Message message, Message recordMessage, MarkQuery query) : base(bot, message) { _recordMessage = recordMessage; _query = query; }
public RememberMarkAction(Bot.Bot bot, Message message, MarkQuery query) : base(bot, message) { _query = query; }