private static bool IsPresent(CmdArgument atr, bool param = false) { for (int i = 0; i < _split.Length; i++) { var item = _split[i]; if (param) { if ((item == "-" + atr.ShortName) || (item == "--" + atr.LongName)) { if (i + 1 <= _split.Length - 1) { return(!_split[i + 1].StartsWith("-") && !_split[i + 1].StartsWith("--")); } else { return(false); } } } else if ((item == "-" + atr.ShortName) || (item == "--" + atr.LongName)) { return(true); } } return(false); }
private static string ParametersHelp(object SettingsObject) { StringBuilder result = new StringBuilder(); if (SettingsObject == null) { return("\tNo arguments or switches required"); } Type t = SettingsObject.GetType(); if (!t.IsClass) { throw new ArgumentException("SettingsObject must be class"); } var properties = t.GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.DeclaredOnly); foreach (var property in properties) { if (!property.CanRead || !property.CanWrite) { continue; } var attributes = property.GetCustomAttributes(true); foreach (var attribute in attributes) { if (attribute is EnumArgument) { CmdArgument cmd = (CmdArgument)attribute; result.AppendFormat("\t-{0} or {1}, required: {2}\r\n", cmd.ShortName, cmd.LongName, cmd.Required); string[] values = Enum.GetNames(property.PropertyType); result.AppendFormat("\t{0}\r\n", cmd.Description); result.AppendFormat("\tPossible values:\r\n\t\t{0}\r\n", String.Join("\r\n\t\t", values.Select(p => p.ToString()).ToArray())); } if (attribute is CmdArgument) { CmdArgument cmd = (CmdArgument)attribute; result.AppendFormat("\t-{0} or {1}, required: {2}\r\n", cmd.ShortName, cmd.LongName, cmd.Required); result.AppendFormat("\t{0}\r\n\r\n", cmd.Description); } } } return(result.ToString()); }
private static string GetPararm(CmdArgument atr) { for (int i = 0; i < _split.Length; i++) { var item = _split[i]; if ((item == "-" + atr.ShortName) || (item == "--" + atr.LongName)) { if (i + 1 <= _split.Length - 1) { return(_split[i + 1]); } else { return(null); } } } return(null); }