1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- using System.Text;
- namespace etoy
- {
- /// <summary>
- /// 客户端配置表加载代码
- /// </summary>
- class CSharpTableLoaderGenerater : IGenerater
- {
- const string TableRepoLoadArea = "<#TableRepoLoadArea>";
- public void Generate(Context context)
- {
- var path = context.Option.ClientDatabaseLoadCodePath;
- if (string.IsNullOrEmpty(path))
- {
- return;
- }
- var fileName = Path.GetFileName(path);
- var templatePath = Path.Combine(Environment.CurrentDirectory, "Configs/CSTemplates", fileName);
- if (!File.Exists(templatePath))
- {
- return;
- }
- // 删除旧文件
- if (File.Exists(path))
- {
- File.Delete(path);
- }
- var sbTableRepoLoadArea = new StringBuilder();
- var tables = context.Blackboard.Tables;
- foreach (var table in tables)
- {
- if (table.TableTag.HasFlag(TableTag.Client))
- {
- sbTableRepoLoadArea.AppendLine($" {table.Name}TableRepo.LoadAsync().Join(group);");
- }
- }
- var templateText = File.ReadAllText(templatePath);
- templateText = templateText.Replace(TableRepoLoadArea, sbTableRepoLoadArea.ToString());
- File.WriteAllText(path, templateText, Encoding.UTF8);
- }
- }
- }
|