diff --git a/ZKWeb.Toolkits/ZKWeb.Toolkits.ProjectCreator.Crossplatform.Gui/.gitignore b/ZKWeb.Toolkits/ZKWeb.Toolkits.ProjectCreator.Crossplatform.Gui/.gitignore
index 96d33b94..b1eea681 100644
--- a/ZKWeb.Toolkits/ZKWeb.Toolkits.ProjectCreator.Crossplatform.Gui/.gitignore
+++ b/ZKWeb.Toolkits/ZKWeb.Toolkits.ProjectCreator.Crossplatform.Gui/.gitignore
@@ -1,10 +1,11 @@
.vscode
node_modules
dist
+build
*.db-journal
package-lock.json
-DatabaseUtils\bin
-DatabaseUtils\obj
+DatabaseUtils/bin
+DatabaseUtils/obj
build
./src/assets/dbUtil
.vs
\ No newline at end of file
diff --git a/ZKWeb.Toolkits/ZKWeb.Toolkits.ProjectCreator.Crossplatform.Gui/src/app/CreateProjectParameters.ts b/ZKWeb.Toolkits/ZKWeb.Toolkits.ProjectCreator.Crossplatform.Gui/src/app/CreateProjectParameters.ts
index 195420f6..dd59e515 100644
--- a/ZKWeb.Toolkits/ZKWeb.Toolkits.ProjectCreator.Crossplatform.Gui/src/app/CreateProjectParameters.ts
+++ b/ZKWeb.Toolkits/ZKWeb.Toolkits.ProjectCreator.Crossplatform.Gui/src/app/CreateProjectParameters.ts
@@ -1,5 +1,4 @@
-import { PluginCollection } from "./PluginCollection";
-
+const fs = require("fs");
export class CreateProjectParameters {
public TemplatesDirectory: string;
@@ -44,7 +43,7 @@ export class CreateProjectParameters {
msgPrefix: "DatabaseMustBeOneOf",
args: this.AvailableDatabases[this.ORM].join(","),
};
- } else if (this.Database === "InMemory" && !this.ConnectionString) {
+ } else if (this.Database !== "InMemory" && !this.ConnectionString) {
return {
isSuccess: false,
msgPrefix: "ConnectionStringCantBeEmpty",
@@ -56,8 +55,15 @@ export class CreateProjectParameters {
};
}
if (this.UseDefaultPlugins) {
- const pluginCollection = PluginCollection.FromFile(this.UseDefaultPlugins);
+ if (!fs.existsSync(this.UseDefaultPlugins)) {
+ return {
+ isSuccess: false,
+ msgPrefix: "DefaultPluginsFileNotFound",
+ };
+ }
+ const json = fs.readFileSync(this.UseDefaultPlugins, "utf8");
+ const pluginCollection = JSON.parse(json);
let isOrmExit = false;
for (const orm of pluginCollection.SupportedORM) {
diff --git a/ZKWeb.Toolkits/ZKWeb.Toolkits.ProjectCreator.Crossplatform.Gui/src/app/PluginCollection.ts b/ZKWeb.Toolkits/ZKWeb.Toolkits.ProjectCreator.Crossplatform.Gui/src/app/PluginCollection.ts
index 07b1e617..ac41d9a5 100644
--- a/ZKWeb.Toolkits/ZKWeb.Toolkits.ProjectCreator.Crossplatform.Gui/src/app/PluginCollection.ts
+++ b/ZKWeb.Toolkits/ZKWeb.Toolkits.ProjectCreator.Crossplatform.Gui/src/app/PluginCollection.ts
@@ -1,15 +1,9 @@
-const fs = require("fs");
export class PluginCollection {
public PrependPlugins: string[];
public AppendPlugins: string[];
public SupportedORM: string[];
- public static FromFile(path: string): PluginCollection {
- const json = fs.readFileSync(path, "utf8");
- return JSON.parse(json);
- }
-
public PluginCollection() {
this.PrependPlugins = [];
this.AppendPlugins = [];
diff --git a/ZKWeb.Toolkits/ZKWeb.Toolkits.ProjectCreator.Crossplatform.Gui/src/app/app.component.html b/ZKWeb.Toolkits/ZKWeb.Toolkits.ProjectCreator.Crossplatform.Gui/src/app/app.component.html
index d4b339c3..5ee2cea5 100644
--- a/ZKWeb.Toolkits/ZKWeb.Toolkits.ProjectCreator.Crossplatform.Gui/src/app/app.component.html
+++ b/ZKWeb.Toolkits/ZKWeb.Toolkits.ProjectCreator.Crossplatform.Gui/src/app/app.component.html
@@ -62,24 +62,24 @@
@@ -96,32 +96,32 @@
diff --git a/ZKWeb.Toolkits/ZKWeb.Toolkits.ProjectCreator.Crossplatform.Gui/src/app/app.component.ts b/ZKWeb.Toolkits/ZKWeb.Toolkits.ProjectCreator.Crossplatform.Gui/src/app/app.component.ts
index 7e30f3f6..796191a7 100644
--- a/ZKWeb.Toolkits/ZKWeb.Toolkits.ProjectCreator.Crossplatform.Gui/src/app/app.component.ts
+++ b/ZKWeb.Toolkits/ZKWeb.Toolkits.ProjectCreator.Crossplatform.Gui/src/app/app.component.ts
@@ -23,6 +23,7 @@ export class AppComponent {
public parameters: CreateProjectParameters;
@Input()
public enableDatabase: any;
+ public defaultConnetionstring: any;
private language: string;
private eventEmitter: MessageEmitter;
private rootPath: string;
@@ -31,20 +32,33 @@ export class AppComponent {
constructor(public translateService: TranslateService) {
this.language = app.getLocale();
this.rootPath = app.getAppPath();
- this.parameters = new CreateProjectParameters();
- this.parameters.ProjectType = "AspNetCore";
- this.parameters.ORM = "NHibernate";
- this.parameters.Database = "MSSQL";
- this.isDataBaseChecking = false;
- this.eventEmitter = new MessageEmitter();
+
this.enableDatabase = {
MSSQL: true,
MySQL: true,
SQLite: true,
PostgreSQL: true,
- InMemory: true,
- MongoDB: true,
+ InMemory: false,
+ MongoDB: false
+ };
+
+ this.defaultConnetionstring = {
+ MSSQL: "Server=127.0.0.1;Database=test_db;User Id=test_user;Password=123456;",
+ MySQL: "Server=127.0.0.1;Port=3306;Database=test_db;User Id=test_user;Password=123456;",
+ SQLite: "Data Source={{App_Data}}/test.db;",
+ PostgreSQL: "Server=127.0.0.1;Port=5432;Database=test_db;User Id=test_user;Password=123456;",
+ InMemory: "",
+ MongoDB: "mongodb://test_user:123456@127.0.0.1:27017/test_db",
};
+
+ this.parameters = new CreateProjectParameters();
+ this.parameters.ProjectName = "Hello.World";
+ this.parameters.ProjectType = "AspNetCore";
+ this.parameters.ORM = "NHibernate";
+ this.parameters.Database = "MSSQL";
+ this.parameters.ConnectionString = this.defaultConnetionstring[this.parameters.Database];
+ this.isDataBaseChecking = false;
+ this.eventEmitter = new MessageEmitter();
}
ngOnInit() {
@@ -143,6 +157,14 @@ export class AppComponent {
});
}
+ public changeDataBase(dataBase: string): void {
+ if (this.defaultConnetionstring[dataBase]) {
+ this.parameters.ConnectionString = this.defaultConnetionstring[dataBase];
+ } else {
+ this.parameters.ConnectionString = "";
+ }
+ }
+
public pluginSelect(): void {
const selectFile = remote.dialog.showOpenDialog({ properties: ["openFile"] });
if (selectFile && selectFile.length > 0) {
@@ -160,22 +182,22 @@ export class AppComponent {
private createCommand(toolPath: string): string {
let parametersStr = [
"--t=" + this.parameters.ProjectType,
- "--n=" + this.parameters.ProjectName,
+ "--n=\"" + this.parameters.ProjectName + "\"",
"--m=" + this.parameters.ORM,
"--b=" + this.parameters.Database,
- "--c=" + "\"this.parameters.ConnectionString" + "\"",
- "--o=" + this.parameters.OutputDirectory,
+ "--c=\"" + this.parameters.ConnectionString + "\"",
+ "--o=\"" + this.parameters.OutputDirectory + "\"",
].join(" ");
if (this.parameters.ProjectDescription) {
- parametersStr += " " + "--d=" + this.parameters.ProjectDescription;
+ parametersStr += " " + "--d=\"" + this.parameters.ProjectDescription + "\"";
}
- if (this.parameters.ProjectDescription) {
- parametersStr += " " + "--u=" + this.parameters.UseDefaultPlugins;
+ if (this.parameters.UseDefaultPlugins) {
+ parametersStr += " " + "--u=\"" + this.parameters.UseDefaultPlugins + "\"";
}
toolPath = path.join(toolPath, "ProjectCreator.Cmd.NetCore", "ZKWeb.Toolkits.ProjectCreator.Cmd.dll");
- return "dotnet " + toolPath + " " + parametersStr;
+ return "dotnet " + toolPath + " " + parametersStr;
}
private findTools(): string {
@@ -186,5 +208,4 @@ export class AppComponent {
}
return "";
}
-
-}
+}
\ No newline at end of file
diff --git a/ZKWeb.Toolkits/ZKWeb.Toolkits.ProjectCreator.Crossplatform.Gui/src/assets/i18n/en-US.json b/ZKWeb.Toolkits/ZKWeb.Toolkits.ProjectCreator.Crossplatform.Gui/src/assets/i18n/en-US.json
index 9194a5da..44e8e80c 100644
--- a/ZKWeb.Toolkits/ZKWeb.Toolkits.ProjectCreator.Crossplatform.Gui/src/assets/i18n/en-US.json
+++ b/ZKWeb.Toolkits/ZKWeb.Toolkits.ProjectCreator.Crossplatform.Gui/src/assets/i18n/en-US.json
@@ -27,5 +27,6 @@
"ThisPluginCollectionOnlySupportTheseORM": "This plugin collection only support these ORM:",
"dataBaseTestFail":"fail to connect dataBase",
"ToolsFoderFail":"unable to find Tools foder",
- "notValidConnectionString":"Invalid ConnectionString"
+ "notValidConnectionString":"Invalid ConnectionString",
+ "DefaultPluginsFileNotFound":"Plugin file not found"
}
\ No newline at end of file
diff --git a/ZKWeb.Toolkits/ZKWeb.Toolkits.ProjectCreator.Crossplatform.Gui/src/assets/i18n/zh-CN.json b/ZKWeb.Toolkits/ZKWeb.Toolkits.ProjectCreator.Crossplatform.Gui/src/assets/i18n/zh-CN.json
index 6e094737..797c9dcb 100644
--- a/ZKWeb.Toolkits/ZKWeb.Toolkits.ProjectCreator.Crossplatform.Gui/src/assets/i18n/zh-CN.json
+++ b/ZKWeb.Toolkits/ZKWeb.Toolkits.ProjectCreator.Crossplatform.Gui/src/assets/i18n/zh-CN.json
@@ -27,5 +27,6 @@
"ThisPluginCollectionOnlySupportTheseORM": "这个插件集只支持这些ORM:" ,
"dataBaseTestFail":"数据库连接失败",
"ToolsFoderFail":"无法探测到Tools文件夹",
- "notValidConnectionString":"连接字符串错误"
+ "notValidConnectionString":"连接字符串错误",
+ "DefaultPluginsFileNotFound":"插件文件不存在"
}
\ No newline at end of file