/// <summary> /// 调用代码生成. /// </summary> private void InvokeBuildCode() { if (IsBuilding) { return; } IsBuilding = true; codeService.ProgressChange -= CodeService_ProgressChange; codeService.ProgressChange += CodeService_ProgressChange; Task buildTask = Task.Factory.StartNew(() => { try { codeService.BuildTo(_codeNamespace, _BuildTables); CodeService_ProgressChange(100, Language.GetString("BuildingCompleted")); Invoke(new MethodInvoker(() => { BuildingDlgTitle.Text = Language.GetString("BuildingCompleted"); })); } catch (Exception Ex) { Invoke(new MethodInvoker(() => { BuildingDlgTitle.Text = Language.GetString("BuildingError"); rich_Logs.Text += Ex.Message; })); } IsBuilding = false; }); }
/// <summary> /// 执行 build 命令. /// </summary> /// <param name="parameters">参数列表.</param> /// <param name="service">代码生成器服务.</param> /// <param name="options">代码生成选项.</param> /// <param name="lang">命令输出的语言环境服务.</param> public static void Do(List <string> parameters, GeneratorService service, SetCommandProvider.SetCommandOptions options, LanguageService lang) { if (parameters == null || parameters.Count != 1) { WriteInstructions(); return; } if (service == null) { Console.WriteLine(lang.GetString("NullCodeService")); return; } if (string.IsNullOrEmpty(options.CodeNamespace)) { Console.WriteLine(lang.GetString("NullCodeNamespace")); return; } if (string.IsNullOrEmpty(options.OutputDir)) { Console.WriteLine(lang.GetString("NullOutputDir")); return; } if (service.AllTables == null || service.AllTables.Count < 1) { Console.WriteLine(lang.GetString("NoTableAvailable")); return; } try { service.Language = lang; service.OutputDir = options.OutputDir; switch (parameters[0].ToLower()) { case "all": service.Pattern = GeneratorService.BuildPattern.BuildAll; service.BuildTo(options.CodeNamespace); Console.WriteLine(lang.GetString("BuildingCompleted")); break; case "-e": service.Pattern = GeneratorService.BuildPattern.BuildEntity; service.BuildTo(options.CodeNamespace); Console.WriteLine(lang.GetString("BuildingCompleted")); break; case "-a": service.Pattern = GeneratorService.BuildPattern.BuildAgent; service.BuildTo(options.CodeNamespace); Console.WriteLine(lang.GetString("BuildingCompleted")); break; default: Console.WriteLine(lang.GetString("DoNothing")); break; } } catch (Exception Ex) { Console.WriteLine(Ex.Message); } }