protected internal override void Execute() { ConfigCli configCli = ConfigCli.Load(); if (optionSilent.OptionGet() == false && configCli.EnvironmentNameGet() != "DEV") { if (UtilCli.ConsoleReadYesNo(string.Format("Deploy to {0} database?", configCli.EnvironmentName)) == false) { return; } } if (optionDrop.OptionGet()) { // FolderNameDeployDb string folderNameDeployDbFramework = UtilFramework.FolderName + "Framework/Framework.Cli/DeployDb/"; string folderNameDeployDbApplication = UtilFramework.FolderName + "Application.Cli/DeployDb/"; Console.WriteLine("DeployDbDrop"); DeployDbDropExecute(folderNameDeployDbApplication, isFrameworkDb: false); DeployDbDropExecute(folderNameDeployDbFramework, isFrameworkDb: true); // Uses ConnectionString in ConfigServer.json UtilCli.ConsoleWriteLineColor("DeployDb drop successful!", ConsoleColor.Green); } else { // FolderNameDeployDb string folderNameDeployDbFramework = UtilFramework.FolderName + "Framework/Framework.Cli/DeployDb/"; string folderNameDeployDbApplication = UtilFramework.FolderName + "Application.Cli/DeployDb/"; // SqlInit string fileNameInit = UtilFramework.FolderName + "Framework/Framework.Cli/DeployDbInit/Init.sql"; string sqlInit = UtilFramework.FileLoad(fileNameInit); Data.ExecuteNonQueryAsync(sqlInit, null, isFrameworkDb: true).Wait(); // (*.sql) UtilCli.ConsoleWriteLineColor("DeployDb run (*.sql) scripts", ConsoleColor.Green); DeployDbExecute(folderNameDeployDbFramework, isFrameworkDb: true); // Uses ConnectionString in ConfigServer.json DeployDbExecute(folderNameDeployDbApplication, isFrameworkDb: false); UtilCli.ConsoleWriteLineColor("DeployDb run (*.sql) scripts successful!", ConsoleColor.Green); // Integrate UtilCli.ConsoleWriteLineColor("DeployDb run Integrate", ConsoleColor.Green); int?reseed = null; if (optionReseed.OptionGet()) { reseed = 1000; } Integrate(reseed); UtilCli.ConsoleWriteLineColor("DeployDb run Integrate successful!", ConsoleColor.Green); } }
protected internal override void Execute() { ConfigCli configCli = ConfigCli.Load(); if (optionSilent.OptionGet() == false && configCli.EnvironmentNameGet() != "DEV") { if (UtilCli.ConsoleReadYesNo(string.Format("Generate CSharp code from {0} database?", configCli.EnvironmentName)) == false) { return; } } bool isFrameworkDb = optionFramework.OptionGet(); if (Script.Run(isFrameworkDb, AppCli)) { UtilCli.ConsoleWriteLineColor("Generate successful!", ConsoleColor.Green); } }
protected internal override void Execute() { // Build angular client if (!UtilCli.FolderNameExist(UtilFramework.FolderName + "Application.Server/Framework/Framework.Angular/")) { var commandBuild = new CommandBuild(AppCli); UtilCli.OptionSet(ref commandBuild.OptionClientOnly, true); commandBuild.Execute(); } if (optionWatch.OptionGet()) { { ConfigCli configCli = ConfigCli.Load(); Console.WriteLine("Select Website:"); for (int i = 0; i < configCli.WebsiteList.Count; i++) { Console.WriteLine(string.Format("{0}={1}", i + 1, configCli.WebsiteList[i].FolderNameNpmBuild)); } Console.Write("Website: "); var websiteIndex = int.Parse(Console.ReadLine()) - 1; var website = configCli.WebsiteList[websiteIndex]; string folderNameNpmBuilt = UtilFramework.FolderName + website.FolderNameNpmBuild; string folderNameDist = UtilFramework.FolderName + website.FolderNameDist; string folderNameAngular = UtilFramework.FolderName + "Framework/Framework.Angular/application/"; string folderNameCustomComponent = UtilFramework.FolderName + "Application.Website/Shared/CustomComponent/"; Console.WriteLine("Copy folder dist/"); UtilCli.FolderCopy(folderNameDist, folderNameAngular + "src/Application.Website/dist/", "*.*", true); Console.WriteLine("Copy folder CustomComponent/"); UtilCli.FolderCopy(folderNameCustomComponent, folderNameAngular + "src/Application.Website/Shared/CustomComponent/", "*.*", true); bool isWebsiteWatch = UtilCli.ConsoleReadYesNo("Start Website npm watch?"); bool isFileSync = UtilCli.ConsoleReadYesNo("Start Website FileSync (dist/ to Angular)?"); bool isAngular = UtilCli.ConsoleReadYesNo("Start Angular?"); bool isServer = UtilCli.ConsoleReadYesNo("Start Server?"); // FileSync if (isFileSync) { FileSync fileSync = new FileSync(); fileSync.AddFolder(folderNameDist, folderNameAngular + "src/Application.Website/dist/"); fileSync.AddFolder(folderNameAngular + "src/Application.Website/Shared/CustomComponent/", folderNameCustomComponent); } // Website --watch if (isWebsiteWatch) { UtilCli.Npm(folderNameNpmBuilt, "run build -- --watch", isWait: false); } // Angular client if (isAngular) { UtilCli.Npm(folderNameAngular, "start -- --disable-host-check", isWait: false); // disable-host-check to allow for example http://localhost2:4200/ } // .NET Server if (isServer) { string folderName = UtilFramework.FolderName + @"Application.Server/"; UtilCli.DotNet(folderName, "run", isWait: false); } void heartBeat() { Console.WriteLine(); Console.WriteLine(UtilFramework.DateTimeToString(DateTime.Now)); if (isAngular) { UtilCli.ConsoleWriteLineColor("Angular: http://" + website.DomainNameList.First().DomainName + ":4200/", System.ConsoleColor.Green); } if (isServer) { UtilCli.ConsoleWriteLineColor("Server: http://" + website.DomainNameList.First().DomainName + ":50919/", System.ConsoleColor.Green); } if (isFileSync) { UtilCli.ConsoleWriteLineColor("Modify Website: " + folderNameNpmBuilt, System.ConsoleColor.Green); UtilCli.ConsoleWriteLineColor("Modify CustomComponent: " + folderNameCustomComponent, System.ConsoleColor.Green); } if (isAngular) { UtilCli.ConsoleWriteLineColor("Modify Angular: " + folderNameAngular, System.ConsoleColor.Green); } Task.Delay(5000).ContinueWith((Task task) => heartBeat()); } if (isFileSync || isWebsiteWatch || isAngular || isServer) { heartBeat(); while (true) { Console.ReadLine(); // Program would end and with it FileSync } } } } else { string folderName = UtilFramework.FolderName + @"Application.Server/"; UtilCli.VersionBuild(() => { UtilCli.DotNet(folderName, "build"); }); UtilCli.DotNet(folderName, "run --no-build", false); if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) { UtilCli.OpenWebBrowser("http://localhost:50919/"); // For port setting see also: Application.Server\Properties\launchSettings.json (applicationUrl, sslPort) } if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux)) { // Ubuntu list all running processes: 'ps' // To reboot Ubuntu type on Windows command prompt: 'wsl -t Ubuntu-18.04' // Ubuntu show processes tool: 'htop' UtilCli.ConsoleWriteLineColor("Stop server with command 'killall -SIGKILL Application.Server node dotnet'", System.ConsoleColor.Yellow); } } }