コード例 #1
0
        /// <summary>
        /// Parses a <see cref="ICommandRoute"/>
        /// </summary>
        /// <param name="commandRoute"></param>
        public void ParseRoute(ICommandRoute commandRoute)
        {
            foreach (var segmentText in commandRoute.CommandTemplate.Split(' '))
            {
                if (new Regex(@"^\w+$").IsMatch(segmentText))
                {
                    commandRoute.AddSegment(new ConstantSegment(segmentText));
                    continue;
                }

                if (new Regex(@"^{\w+}$").IsMatch(segmentText))
                {
                    commandRoute.AddSegment(new VariableSegement(segmentText));
                    continue;
                }

                if (new Regex(@"^\[-\w+\|\w+\]$").IsMatch(segmentText))
                {
                    commandRoute.AddOptionalSegment(new FlagValueSegment(segmentText));
                    commandRoute.AddOptionalSegment(new FlagSegment(segmentText));
                    continue;
                }

                throw new Exception($"Invalid route detected {commandRoute.CommandTemplate}");
            }
        }
コード例 #2
0
        /// <summary>
        /// Parses a <see cref="ICommandRoute"/> 
        /// </summary>
        /// <param name="commandRoute"></param>
        public void ParseRoute(ICommandRoute commandRoute)
        {
            foreach (var segmentText in commandRoute.CommandTemplate.Split(' '))
            {
                if (new Regex(@"^\w+$").IsMatch(segmentText))
                {
                    commandRoute.AddSegment(new ConstantSegment(segmentText));
                    continue;
                }

                if (new Regex(@"^{\w+}$").IsMatch(segmentText))
                {
                    commandRoute.AddSegment(new VariableSegement(segmentText));
                    continue;
                }

                if (new Regex(@"^\[-\w+\|\w+\]$").IsMatch(segmentText))
                {
                    commandRoute.AddOptionalSegment(new FlagValueSegment(segmentText));
                    commandRoute.AddOptionalSegment(new FlagSegment(segmentText));
                    continue;
                }

                throw new Exception($"Invalid route detected {commandRoute.CommandTemplate}");
            }
        }