/// <summary> /// 执行 comments 命令. /// </summary> /// <param name="parameters">命令的参数列表.</param> /// <param name="service">代码生成器服务对象.</param> /// <param name="lang">命令的输出语言环境服务.</param> public static void Do(List <string> parameters, GeneratorService service, LanguageService lang) { if (parameters == null || parameters.Count < 2) { WriteInstructions(); return; } if (service == null) { Console.WriteLine(lang.GetString("NullCodeService")); return; } try { string filePath = ParametersPathGetter.MergeOne(parameters, 1); switch (parameters[0].ToLower()) { case "save": service.SaveComments(filePath); break; case "load": service.LoadComments(filePath); break; } } catch (Exception Ex) { Console.WriteLine(Ex.Message); } }
/// <summary> /// 执行 Connect 命令. /// </summary> /// <param name="parameters">命令的参数列表.</param> /// <param name="lang">命令输出的语言环境服务.</param> /// <returns></returns> public static GeneratorService Do(List <string> parameters, LanguageService lang) { if (parameters == null || parameters.Count < 2) { WriteInstructions(); return(null); } string connectionString = ParametersPathGetter.MergeOne(parameters, 1); GeneratorService service = null; DbAccess DBA; switch (parameters[0].ToLower()) { case "ms-sql": DBA = new Wunion.DataAdapter.Kernel.SQLServer.SqlServerDbAccess(); DBA.ConnectionString = connectionString; service = new GeneratorService(DBA, new Wunion.DataAdapter.Kernel.SQLServer.CommandParser.SqlServerParserAdapter()); service.DbContext = new SqlServerDbContext(service.DbEngine); break; case "sqlite": DBA = new Wunion.DataAdapter.Kernel.SQLite3.SqliteDbAccess(); DBA.ConnectionString = connectionString; service = new GeneratorService(DBA, new Wunion.DataAdapter.Kernel.SQLite3.CommandParser.SqliteParserAdapter()); service.DbContext = new SQLite3DbContext(service.DbEngine); break; case "postgresql": DBA = new Wunion.DataAdapter.Kernel.PostgreSQL.NpgsqlDbAccess(); DBA.ConnectionString = connectionString; service = new GeneratorService(DBA, new Wunion.DataAdapter.Kernel.PostgreSQL.CommandParser.NpgsqlParserAdapter()); service.DbContext = new PostgreSQLDbContext(service.DbEngine); break; case "mysql": DBA = new Wunion.DataAdapter.Kernel.MySQL.MySqlDBAccess(); DBA.ConnectionString = connectionString; service = new GeneratorService(DBA, new Wunion.DataAdapter.Kernel.MySQL.CommandParser.MySqlParserAdapter()); service.DbContext = new MySQLDbContext(service.DbEngine); break; } if (service != null) { try { List <TableInfoModel> lst = service.AllTables.Distinct(p => p.tableName).ToList(); Console.WriteLine(lang.GetString("DatabaseConnected")); } catch (Exception Ex) { Console.WriteLine(Ex.Message); } } return(service); }
/// <summary> /// 执行 set 命令. /// </summary> /// <param name="parameters">参数列表.</param> /// <param name="options">要设置的参数对象.</param> /// <param name="lang">set 命令输出的语言环境服务.</param> public static void Do(List <string> parameters, SetCommandOptions options, LanguageService lang) { if (parameters == null || parameters.Count != 2) { WriteInstructions(); return; } switch (parameters[0].ToLower()) { case "namespace": options.CodeNamespace = parameters[1]; Console.WriteLine(string.Format(lang.GetString("AlreadySetOption"), parameters[0])); break; case "output": options.OutputDir = ParametersPathGetter.MergeOne(parameters, 1); Console.WriteLine(string.Format(lang.GetString("AlreadySetOption"), parameters[0])); break; default: Console.WriteLine(lang.GetString("DoNothing")); break; } }