Esempio n. 1
0
        public static BaseBotCommand ParseCommand(Update update)
        {
            BaseBotCommand command;
            var            args             = string.Empty;
            var            tokens           = Regex.Split(update.Message.Text.Trim(), @"\s");
            var            minCommandLength = CommandNames.Select(commandName => commandName.Length).Min();

            if (!tokens.Any() || tokens[0].Length < minCommandLength)
            {
                return(null);
            }

            var commandText = tokens[0].Substring(1);

            if (commandText.IndexOf('@') != -1)
            {
                commandText = commandText.Substring(0, commandText.IndexOf('@'));
            }

            if (tokens.Length > 1)
            {
                args = tokens.Skip(1).Aggregate((s1, s2) => $"{s1} {s2}");
            }

            switch (commandText.ToLower())
            {
            case "mybd":
                command = new MyBdCommand(update, args);
                break;

            case "bdz":
                command = new BdzCommand(update);
                break;

            default:
                command = null;
                break;
            }
            return(command);
        }