Exemplo n.º 1
0
        public static TurtleAppOptions ConvertToTurtleAppOptions(IEnumerable <string> args)
        {
            string path;
            var    options   = new TurtleAppOptions();
            var    msgErrors = new List <string>();
            var    argQueue  = new Queue <string>(args);

            while (argQueue.TryDequeue(out string param))
            {
                try
                {
                    switch (TurtleAppOptions.GetOptionType(param))
                    {
                    case TurtleAppOptionType.PathSetting:
                        if (GetArgPath(ref argQueue, out path))
                        {
                            options.PathSetting = path;
                        }
                        else
                        {
                            msgErrors.Add($"Incorrect option format: It was provider {TurtleAppOptions.PATH_SETTING} but not a path.");
                        }
                        break;

                    case TurtleAppOptionType.PathActions:
                        if (GetArgPath(ref argQueue, out path))
                        {
                            options.PathActions = path;
                        }
                        else
                        {
                            msgErrors.Add($"Incorrect option format: It was provider {TurtleAppOptions.PATH_ACTIONS} but not a path.");
                        }
                        break;

                    default:
                        msgErrors.Add($"The parameter {param} is unknown.");
                        break;
                    }
                }
                catch
                {
                    msgErrors.Add("Something happen processing the parameters, please try again.");
                }
            }
            if (!options.HasPathActions)
            {
                msgErrors.Add($"You need to add {TurtleAppOptions.PATH_ACTIONS} with a path for the action file.");
            }
            if (!options.HasPathSetting)
            {
                msgErrors.Add($"You need to add {TurtleAppOptions.PATH_SETTING} with a path for the setting file.");
            }
            if (msgErrors.Any())
            {
                throw new ListMessageException(msgErrors);
            }
            return(options);
        }
Exemplo n.º 2
0
        private static bool GetArgPath(ref Queue <string> argQueue, out string path)
        {
            var result = argQueue.TryPeek(out string tempPath) &&
                         TurtleAppOptions.GetOptionType(tempPath) == TurtleAppOptionType.UNKNOWN;

            path = result ? argQueue.Dequeue() : string.Empty;
            return(result);
        }