Example #1
0
        /// <summary>
        /// Parses arguments by
        /// </summary>
        /// <param name="argText"></param>
        /// <returns></returns>
        private static ArgAttribute ParseArgByPositionProperties(string argText)
        {
            var arg = new ArgAttribute();
            // NOTE: Do a simple split on "," for the 1st version of fluentscript.
            var fields      = argText.Split(',');
            var totalFields = fields.Length;

            // Get the name.
            if (totalFields >= 1)
            {
                arg.Name = fields[0].Trim();
            }
            if (totalFields >= 2)
            {
                arg.Desc = fields[1].Trim();
            }
            if (totalFields >= 3)
            {
                arg.Type = fields[2].Trim();
            }
            if (totalFields >= 4)
            {
                arg.Alias = fields[3].Trim();
            }

            if (totalFields >= 5)
            {
                var example = fields[4];
                ParseExamples(arg, example);
            }
            return(arg);
        }
Example #2
0
 public ArgInstance(ArgAttribute arg, FieldInfo field, Type parentType, object parentObject, object defaultValue)
 {
     ParentType = parentType;
     Field = field;
     Arg = arg;
     ParentObject = parentObject;
     DefaultValue = defaultValue;
 }
        /// <summary>
        /// Converts the parameter value into the proper type of the argument.
        /// </summary>
        /// <param name="arg"></param>
        /// <param name="param"></param>
        /// <returns></returns>
        private object ConvertToProperType(ArgAttribute arg, object param)
        {
            object val = param;

            if (param is LObject)
            {
                var lobj  = (LObject)param;
                var isInt = arg.Type == "int" && lobj.Type == LTypes.Number;
                val = isInt ? Convert.ToInt32(lobj.GetValue()) : lobj.GetValue();
            }
            return(val);
        }
Example #4
0
 private static void ParseExamples(ArgAttribute arg, string example)
 {
     if (!example.Contains("|"))
     {
         arg.Examples.Add(example);
     }
     else
     {
         var examples = example.Split('|');
         foreach (var ex in examples)
         {
             arg.Examples.Add(ex.Trim());
         }
     }
 }
        /// <summary>
        /// Parses arguments by
        /// </summary>
        /// <param name="argText"></param>
        /// <returns></returns>
        private static ArgAttribute ParseArgByNamedProperties(string argText)
        {
            // Remove the @arg: from the argText
            var arg = new ArgAttribute();

            // NOTE: Do a simple split on "," for the 1st version of fluentscript.
            string[] fields      = argText.Split(',');
            int      totalFields = fields.Length;

            foreach (var field in fields)
            {
                var tokens = field.Split(':');

                // Name
                string name  = tokens[0].Trim().ToLower();
                string value = tokens[1].Trim();
                if (name == "name")
                {
                    arg.Name = value;
                }
                else if (name == "desc")
                {
                    arg.Desc = value;
                }
                else if (name == "alias")
                {
                    arg.Alias = value;
                }
                else if (name == "type")
                {
                    arg.Type = value;
                }
                else if (name == "examples")
                {
                    ParseExamples(arg, value);
                }
            }
            return(arg);
        }
Example #6
0
 public FindResult GetFindResult(params string[] mandatoryFields)
 {
     HashSet<string> mandatoryFieldsSet = new HashSet<string>(mandatoryFields);
     List<ArgInstance> argInstances = new List<ArgInstance>();
     foreach (FieldInfo fieldInfo in GetType().GetFields())
     {
         ArgAttribute attribute = new ArgAttribute("helpmessage");
         if (mandatoryFieldsSet.Contains(fieldInfo.Name))
         {
             attribute.IsMandatory = true;
         }
         ArgInstance argInstance = new ArgInstance(attribute, fieldInfo, GetType(), this);
         argInstances.Add(argInstance);
     }
     return new FindResult(argInstances, ExecutionLog.CreateErrorLog(), ExecutionLog.CreateWarningLog());
 }
Example #7
0
 public ArgInstance(ArgAttribute arg, FieldInfo field, Type parentType, object parentObject)
     : this(arg, field, parentType, parentObject, CreateSystemDefaultValue(field.FieldType))
 {
 }
Example #8
0
 public ArgInstance(ArgAttribute arg, FieldInfo field, Type parentType)
     : this(arg, field, parentType, parentType)
 {
 }