예제 #1
0
        private void Create(CSharpApplicationConfig config)
        {
            Constants.Name = config.Name;
            Constants.NameSafe = config.Name.Replace(".", string.Empty);

            var solution = Commands
                .AddCSharpSolution(config.Path, config.Name);

            if (config.Full)
                CreateBusinessProjects(solution);

            var webProject = solution
                .AddAspNetProject("View.Web", config.Full);

            CommandsPost.Add(new CommandShell(new CommandShellParam { Name = "Restoring DotNet packages", Command = "dotnet", Arguments = "restore", Directory = solution.Parameter.Path }));

            if (config.Angular)
            {
                webProject
                    .AddAngularGulp(config.Full);

                AngularApplication angular = new AngularApplication(webProject.Parameter.SolutionParam.SolutionName, webProject.Parameter.Path, "wwwroot");

                Commands.AddRange(angular.Commands);
                CommandsPost.AddRange(angular.CommandsPost);
            }
        }
예제 #2
0
        protected override void SetUp(string[] args)
        {
            args = RemoveArg("--csharp", args);

            CommandLineApplication result = new CommandLineApplication(false)
            {
                Name = "xpg",
                FullName = "XCommon Project Generator",
                Description = "Generate new C# project with support to Angular2 and Material Design",
            };

            var help = result.HelpOption("--help");

            var simple = result.Option("-s|--simple", "Create new C# application, without business layer", CommandOptionType.NoValue);

            var path = result.Option("-p|--path", "Set the path to the new application", CommandOptionType.SingleValue);
            var name = result.Option("-n|--name", "Set the name of the new application", CommandOptionType.SingleValue);

            var noangular = result.Option("--noangular", "Create new C# application, without angular2 on web project", CommandOptionType.NoValue);
            var notest = result.Option("--notest", "Create new C# application, without test project", CommandOptionType.NoValue);
            var nogenerator = result.Option("--nogenerator", "Create new C# application, without code generator project", CommandOptionType.NoValue);

            result.OnExecute(() =>
            {
                bool error = false;
                List<string> messages = new List<string>();

                if (!path.HasValue())
                {
                    error = true;
                    messages.Add("Path not specified");
                }

                if (!name.HasValue())
                {
                    error = true;
                    messages.Add("Name not specified");
                }

                if (error)
                {
                    result.ShowHelp();
                    Console.WriteLine();
                    Console.WriteLine("  - Errors");
                    messages.ForEach(msg => Console.WriteLine($"    * {msg}"));
                    return -1;
                }

                var config = new CSharpApplicationConfig
                {
                    Name = name.Value(),
                    Path = path.Value(),
                    Full = !simple.HasValue(),
                    Angular = !noangular.HasValue(),
                    Generator = !nogenerator.HasValue(),
                    Test = !notest.HasValue()
                };

                Create(config);

                return 0;
            });

            PrintLogo();
            result.Execute(args);
        }