コード例 #1
0
        void Generate(Table tb, bool isToFile = false)
        {
            //生成domain.cs
            string domainCs = CodeMaker.MakeDomainCs(tb, mySetting);
            //生成domain.designer.cs
            string domainDesignerCs = CodeMaker.MakeDomainDesignerCs(tb, mySetting);
            //生成IReposity
            string ireposityCs = CodeMaker.MakeIReposityCs(tb, mySetting);
            //生成Reposity.cs
            string reposityCs = CodeMaker.MakeReposityCs(tb, mySetting);
            //生成Reposity.designer.cs
            string reposityDesignerCs = CodeMaker.MakeReposityDesignerCs(tb, mySetting);

            if (!isToFile)
            {
                domainCodeFastColoredTextBox.Text = domainCs;
                fastColoredTextBox1.Text          = domainDesignerCs;
                if (mySetting.IsAggregateRoot)
                {
                    fastColoredTextBox2.Text = ireposityCs;
                    fastColoredTextBox3.Text = reposityCs;
                    fastColoredTextBox4.Text = reposityDesignerCs;
                }
                else
                {
                    //不是聚合根不必要生成仓储类
                    fastColoredTextBox2.Text = "";
                    fastColoredTextBox3.Text = "";
                    fastColoredTextBox4.Text = "";
                }
            }
            else
            {
                //先修改项目文件
                UpdateCsprojFile(mySetting.DominFolderPath, Path.Combine(mySetting.DomainDir, tb.ClassName + ".cs"), Path.Combine(mySetting.DomainDir, tb.ClassName + ".designer.cs"));
                WriteToFile(Path.Combine(Path.GetDirectoryName(mySetting.DominFolderPath), mySetting.DomainDir), tb.ClassName + ".cs", domainCs, mySetting.IsReWroteCsFile);
                WriteToFile(Path.Combine(Path.GetDirectoryName(mySetting.DominFolderPath), mySetting.DomainDir), tb.ClassName + ".designer.cs", domainDesignerCs, true);
                if (mySetting.IsAggregateRoot)
                {
                    //聚合根才要生成仓储类
                    //修改项目文件
                    UpdateCsprojFile(mySetting.IReposityFolderPath, Path.Combine(mySetting.IReposityDir, "I" + tb.ClassName + "Repository.cs"), null);
                    UpdateCsprojFile(mySetting.ReposityFolderPath, Path.Combine(mySetting.ReposityDir, tb.ClassName + "Repository.cs"), Path.Combine(mySetting.ReposityDir, tb.ClassName + "Repository.designer.cs"));

                    WriteToFile(Path.Combine(Path.GetDirectoryName(mySetting.IReposityFolderPath), mySetting.IReposityDir), "I" + tb.ClassName + "Repository.cs", ireposityCs, mySetting.IsReWroteCsFile);
                    WriteToFile(Path.Combine(Path.GetDirectoryName(mySetting.ReposityFolderPath), mySetting.ReposityDir), tb.ClassName + "Repository.cs", reposityCs, mySetting.IsReWroteCsFile);
                    WriteToFile(Path.Combine(Path.GetDirectoryName(mySetting.ReposityFolderPath), mySetting.ReposityDir), tb.ClassName + "Repository.designer.cs", reposityDesignerCs, true);
                }
            }
        }