Пример #1
0
        private static void Main(string[] args)
        {
            var cla = new CommandLineArgs();
            var sw  = new Stopwatch();

            sw.Start();

#if DEBUG
            Debugger.Launch();
#endif
            try
            {
                // test for piped content.
                var arguments = GetArguments(args);

                var result = cla.CliParse(arguments);
                if (!result.Successful)
                {
                    Console.WriteLine("Parse failed!  Use --help flag for instructions on usage.");
                    return;
                }

                if (result.ShowHelp)
                {
                    var usage = cla.GetUsage();
                    Console.WriteLine(usage);
                    return;
                }

                if (cla.ShowPatternHelp)
                {
                    var usage = cla.GetPatternUsage();
                    Console.Write(usage);
                    return;
                }

                if (cla.ListNamedPatterns)
                {
                    var paths = new List <string>();
                    paths.Add("default");

                    if (!string.IsNullOrEmpty(cla.NamedPatterns))
                    {
                        cla.NamedPatterns.Split(';').ToList().ForEach(paths.Add);
                    }

                    Console.WriteLine("Named Parameters:");
                    foreach (var file in paths)
                    {
                        var correctedPath   = FileReader.GetPatternFilePath(file);
                        var namedParameters = FileReader.LoadNamedPatterns(correctedPath);
                        foreach (var namedParameter in namedParameters.Patterns)
                        {
                            Console.WriteLine(namedParameter.Name);
                        }
                    }
                }
                else
                {
                    var template = GetTemplateValue(cla);

                    if (!string.IsNullOrEmpty(template)) // output path provided.
                    {
                        if (cla.Verbose)
                        {
                            Console.WriteLine("Creating " + cla.Count.ToString() + " items.");
                        }

                        if (!string.IsNullOrEmpty(cla.OutputFilePath))
                        {
                            OutputToFile(cla, template);
                        }
                        else
                        {
                            OutputToConsole(cla, template);
                        }
                    }
                    else
                    {
                        Console.WriteLine(cla.GetUsage());
                    }
                }

                if (cla.Verbose)
                {
                    if (sw != null)
                    {
                        sw.Stop();
                        Console.WriteLine("Generation took {0} milliseconds", sw.ElapsedMilliseconds);
                    }
                }
            }
            catch (GenerationException gex)
            {
                Console.WriteLine("Error:\n{0}", gex.Message);
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error:{0}\n\nStackTrace:{1}", ex.Message, ex.StackTrace);
            }
        }