123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- namespace etoy
- {
- class CSharpCommonTableRepositoryGenerater : IGenerater
- {
- const string CLASS_TAIL = "TableRepo";
- const string TABLE_CLASS = "Table";
- const string RELATIVE_PATH = "Repositories";
- public void Generate(Context context)
- {
- var tables = context.Blackboard.Tables;
- foreach (var table in tables)
- {
- if (table.TableTag.HasFlag(TableTag.Client))
- GenSingle(context, table);
- }
- }
- void GenSingle(Context context, Table table)
- {
- string csharpTypeName = table.Name + CLASS_TAIL;
- var tableClassName = table.Name + TABLE_CLASS;
- string fileName = $"{csharpTypeName}.cs";
- string directory = Path.Combine(context.Option.ClientCodeOutput, RELATIVE_PATH).ToPath();
- if (!Directory.Exists(directory))
- Directory.CreateDirectory(directory);
- string path = Path.Combine(directory, fileName);
- using CodeWriter writer = new CodeWriter(path);
- // using
- writer.WriteLine("// Generate By EToy");
- writer.WriteLine("// Don't Edit It!!");
- writer.WriteLine();
- writer.WriteLine("using XGame.Framework.Database;");
- writer.WriteLine();
- writer.WriteLine();
- // namespace
- writer.Bracket("namespace XGame.Database");
- {
- // class
- writer.Bracket($"public partial class {csharpTypeName} : TableRepository<{tableClassName}, {csharpTypeName}>");
- {
- }
- writer.EndBracket();
- }
- writer.EndBracket();
- }
- }
- }
|