public void OnExecute()
        {
            if (string.IsNullOrEmpty(ConfigFile))
            {
                PackageName       = PackageName ?? Prompt.GetString("What is the name of the project?", null, ConsoleColor.Cyan);
                SwaggerFile       = SwaggerFile ?? Prompt.GetString("Enter the Path/URL of Swagger file", null, ConsoleColor.Cyan);
                UseCircuitbreaker = UseCircuitbreaker ?? Prompt.GetYesNo("Include Circute Breaker?", false, ConsoleColor.Cyan);
                UseMessaging      = UseMessaging ?? Prompt.GetYesNo("Include Messaging?", false, ConsoleColor.Cyan);
                UseCaching        = UseCaching ?? Prompt.GetYesNo("Include Caching?", false, ConsoleColor.Cyan);

                var config = new CodeGenConfig
                {
                    PackageName                     = this.PackageName,
                    SwaggerFile                     = this.SwaggerFile,
                    ExecutableJarFilePath           = this.ExecutableJarFilePath,
                    TemplateDirectoryPath           = this.TemplateDirectoryPath,
                    ConfigForSwaggerCodeGenFilePath = this.ConfigForSwaggerCodeGenFilePath,
                    UseCircuitbreaker               = this.UseCircuitbreaker,
                    UseMessaging                    = this.UseMessaging,
                    Database  = EnumDatabase.MongoDB,
                    Messaging = new List <string> {
                        "kafka"
                    },
                    UseCaching       = this.UseCaching,
                    outputFolderPath = this.OutPutFolder//@"D:\E-Comm\Modernization\CodeGeneratorAPI\CodeGeneratorAPI\Output" //this.OutPutFolder
                };

                WebApiProjectCodeGen codeGen = new WebApiProjectCodeGen();
                var result = codeGen.GenerateProjectCode(config).GetAwaiter().GetResult();
            }
        }
        public async Task <IActionResult> CreateWebAPI([FromBody] WebAPI webApi)
        {
            if (webApi != null)
            {
                //var outputFolderPath = _hostingEnvironment.ContentRootPath + "\\" + webApi.projectName + localDateTime +"\\";
                var outputFolderPath = @"D:\work\poc\CodeGenOutput" + "\\" + webApi.projectName + localDateTime + "\\";
                while (!Directory.Exists(outputFolderPath))
                {
                    Directory.CreateDirectory(outputFolderPath);
                }
                if (webApi.saveToGit)
                {
                    gitOperations = new GitOperations(webApi.gitUsername, webApi.gitPassword, webApi.gitURL, outputFolderPath);
                    gitOperations.CloneRepo();
                    gitbranchName = gitbranchName + webApi.projectName;
                }

                var config = new CodeGenConfig()
                {
                    Messaging         = webApi.messaging,
                    UseCircuitbreaker = webApi.useCircuitBreaker,
                    PackageName       = webApi.projectName,
                    namespaceName     = webApi.namespaceName,
                    SwaggerFile       = webApi.swaggerPath,
                    outputFolderPath  = outputFolderPath
                };

                WebApiProjectCodeGen webApiProjectCodeGen = new WebApiProjectCodeGen();
                await webApiProjectCodeGen.GenerateProjectCode(config);

                if (webApi.saveToGit)
                {
                    if (!string.IsNullOrEmpty(webApi.gitUsername) && !string.IsNullOrEmpty(webApi.gitPassword) &&
                        !string.IsNullOrEmpty(webApi.gitURL))
                    {
                        var branches = gitOperations.ListGitBranches(gitbranchName);
                        if (!branches)
                        {
                            gitOperations.CreateBranch(gitbranchName, gitbranchName);
                            gitOperations.PushCommits(gitbranchName, gitbranchName);
                            return(Ok(new CreateResponse()
                            {
                                Result = "Project Created. Pushed to Git."
                            }));
                        }
                    }
                }
            }
            return(Ok(new CreateResponse()
            {
                Result = "Project Created. TODO: Download zip file."
            }));
        }