private static string getStandard(iOutputStream pOutput, string pStr) { using (StringWriter sw = new StringWriter()) { Console.SetOut(sw); pOutput.Standard(pStr); return(sw.ToString().Trim()); } }
/// <summary> /// Creates a request object from the command line arguments. /// </summary> /// <param name="pOptions">The parser options.</param> /// <param name="pArgs">The command line arguments.</param> /// <param name="pDescs">Argument descriptions.</param> /// <param name="pOutput">Factory for handling output.</param> /// <returns></returns> public static Request Create(CliOptions pOptions, IEnumerable <string> pArgs, IEnumerable <Description> pDescs, iOutputFactory pOutput) { iOutputStream outputStream = pOutput.Create(); OutputMessages outputMessages = new OutputMessages(pOptions, outputStream); Validator validator = new Validator(outputMessages); return(Create(pOptions, validator, pArgs, pDescs.ToList())); }
private static string getStandard(iOutputStream pOutput, string pStr) { using (StringWriter sw = new StringWriter()) { Console.SetOut(sw); pOutput.Standard(pStr); return sw.ToString().Trim(); } }
public void Create() { ConsoleFactory factory = new ConsoleFactory(); iOutputStream stream = factory.Create(); Assert.IsNotNull(stream); stream.Standard("test"); stream.Error("test"); }
/// <summary> /// Displays program greeting. /// </summary> /// <param name="pOutS"></param> private static void WriteGreeting(iOutputStream pOutS) { Assembly assembly = Assembly.GetExecutingAssembly(); FileVersionInfo fvi = FileVersionInfo.GetVersionInfo(assembly.Location); string version = fvi.FileVersion; pOutS.Standard(string.Format(Resource.Greeting_Version, version)); pOutS.Standard(Resource.Greeting_Company); pOutS.Standard(Resource.Greeting_Contact); pOutS.Standard(""); }
/// <summary> /// Constructor /// </summary> /// <param name="pOptions">The parser options</param> /// <param name="pOutput">The output handler</param> /// <param name="pUsageNamed">True to list named parameters in the "usage" description.</param> public OutputHelp(CliOptions pOptions, iOutputStream pOutput, bool pUsageNamed = false) { _options = pOptions; _output = pOutput; _usageNamed = pUsageNamed; }
/// <summary> /// Initializes this class /// </summary> public OutputMessages(CliOptions pOptions, iOutputStream pOutput) { _options = pOptions; _output = pOutput; }
/// <summary> /// Entry /// </summary> /// <param name="pArgs">The arguments from the command line.</param> private static void Main(string[] pArgs) { ConsoleFactory consoleFactory = new ConsoleFactory(); iOutputStream outS = consoleFactory.Create(); WriteGreeting(outS); CliOptions options = CliOptions.WindowsStyle; List <Description> descs = DescriptionFactory.Create( options, new HelpResource(Help.ResourceManager), "[/domains:string] [/limit:int] [/count] [/sort:string] [/desc] [/max:int] [/min:int] pattern" ); if (pArgs.Length == 0) { OutputHelp outputHelp = new OutputHelp(options, consoleFactory.Create()); outputHelp.Show(descs); return; } Request req = RequestFactory.Create(options, pArgs, descs, consoleFactory); if (!req.Valid) { return; } string pattern = req.Get <string>("pattern"); outS.Standard(pattern); outS.Standard(""); int max = req.Contains("max") ? Math.Min(req.Get <int>("max"), _MAX_LENGTH) :_MAX_LENGTH; int min = req.Contains("min") ? Math.Max(req.Get <int>("min"), 1) : 1; IEnumerable <string> domains = (from topLevel in getTopLevel(req) from domain in getPattern(req) where !domain.StartsWith("-") && !domain.EndsWith("-") && domain.Length <= max && domain.Length >= min let str = string.Format("{0}.{1}", domain, topLevel) where str.Length <= _MAX_LENGTH && !AnyLabelTooLong(domain, 63) select str).Distinct(); if (req.Contains("count")) { outS.Standard(domains.Count().ToString(CultureInfo.InvariantCulture)); return; } if (req.Contains("sort")) { string sort = req.Get <string>("sort").ToLower(); domains = sort == "width" ? domains.OrderBy(pDomain => pDomain.Length) : domains.OrderBy(pDomain => pDomain); if (req.Contains("desc")) { domains = domains.Reverse(); } } foreach (string domain in setLimit(req, domains)) { if (isFree(domain)) { outS.Standard(domain); } } }