public void PropertySetModifierPrivate() { var p = new Property("Int32", "Age"); p.Get.Body.Add(new CodeBlock(SourceCodeLanguage.CSharp, "return _Age;")); p.Set.Modifier = AccessModifier.Private; p.Set.Body.Add(new CodeBlock(SourceCodeLanguage.CSharp, "_Age = value;")); var sw = new StringWriter(); var cs = new CSharpSourceCodeGenerator(sw); cs.Write(p); Assert.AreEqual("public Int32 Age" + SourceCodeGenerator.NewLine + "{" + SourceCodeGenerator.NewLine + " get" + SourceCodeGenerator.NewLine + " {" + SourceCodeGenerator.NewLine + " return _Age;" + SourceCodeGenerator.NewLine + " }" + SourceCodeGenerator.NewLine + " private set" + SourceCodeGenerator.NewLine + " {" + SourceCodeGenerator.NewLine + " _Age = value;" + SourceCodeGenerator.NewLine + " }" + SourceCodeGenerator.NewLine + "}" + SourceCodeGenerator.NewLine , SourceCodeGenerator.Write(SourceCodeLanguage.CSharp, p)); }
protected override void Execute() { String path = this.OutputDirectoryPath; var tablePath = Path.Combine(path, "Table"); var tableStoredProcedurePath = Path.Combine(path, "TableStoredProcedure"); var storedProcedurePath = Path.Combine(path, "StoredProcedure"); var userDefinedTableTypePath = Path.Combine(path, "UserDefinedTableType"); ClassSourceCodeFileFactory f = null; var sc = new SourceCodeFileGenerator(); foreach (var table in this.Tables) { f = new TableClassSourceCodeFileFactory(table, this.DatabaseKey); sc.SourceCodes.Add(f.Create(tablePath, this.NamespaceName)); f = new TableRecordClassSourceCodeFileFactory(table); sc.SourceCodes.Add(f.Create(tablePath, this.NamespaceName)); f = new TableIRecordClassSourceCodeFileFactory(table); sc.SourceCodes.Add(f.Create(tablePath, this.NamespaceName)); } foreach (var sp in this.StoredProcedures.Where(el => el.StoredProcedureType != StoredProcedureType.Custom)) { f = new StoredProcedureClassSourceCodeFileFactory(sp, this.DatabaseKey); sc.SourceCodes.Add(f.Create(tableStoredProcedurePath, this.NamespaceName)); } foreach (var sp in this.StoredProcedures.Where(el => el.StoredProcedureType == StoredProcedureType.Custom)) { f = new StoredProcedureClassSourceCodeFileFactory(sp, this.DatabaseKey); sc.SourceCodes.Add(f.Create(storedProcedurePath, this.NamespaceName)); } foreach (var ut in this.UserDefinedTableTypes) { f = new UserDefinedTableTypeSourceCodeFileClassFactory(ut); sc.SourceCodes.Add(f.Create(userDefinedTableTypePath, this.NamespaceName)); } var count = sc.SourceCodes.Count; for (int i = 0; i < count; i++) { var file = sc.SourceCodes[i]; CSharpSourceCodeGenerator cs = null; using (var stm = new StreamWriter(file.FilePath, false, Encoding.UTF8)) { foreach (var c in String.Format("{0}{1}", GeneratedByComment, Environment.NewLine)) { stm.Write(c); } cs = new CSharpSourceCodeGenerator(stm); cs.Write(file.SourceCode); this.OnProcessProgress(new ProcessProgressEventArgs(Path.GetFileName(file.FilePath), i / count)); this.OnFileGenerated(new SourceCodeFileGeneratedEventArgs(file, DateTime.Now)); } } }
private void CreateSourceCodeFile(String filePath, SourceCode sourceCode) { using (var stm = new FileStream(filePath, FileMode.Create)) { var cs = new CSharpSourceCodeGenerator(new StreamWriter(stm)); cs.Write(sourceCode); cs.Flush(); stm.Close(); } }
public void InterfaceIndent() { var c = new Interface("IPerson"); var cs = new CSharpSourceCodeGenerator(); cs.CurrentIndentLevel = 2; cs.Write(c); //static prefer Assert.AreEqual(" public interface IPerson" + SourceCodeGenerator.NewLine + " {" + SourceCodeGenerator.NewLine + " }" + SourceCodeGenerator.NewLine, cs.ToString()); }
public void TestPropertyBasicFeature() { var p = new PropertyBody(PropertyBodyType.Get); p.Body.Add(new CodeBlock(SourceCodeLanguage.CSharp, "return _Age;")); var cs = new CSharpSourceCodeGenerator(); cs.CurrentIndentLevel = 1; cs.Write(p); Assert.AreEqual(" get" + SourceCodeGenerator.NewLine + " {" + SourceCodeGenerator.NewLine + " return _Age;" + SourceCodeGenerator.NewLine + " }" + SourceCodeGenerator.NewLine , cs.ToString()); }
public void ClassIndent() { var c = new Class(AccessModifier.Public, "StringUtility"); c.Modifier.Static = true; c.Modifier.Abstract = true; CSharpSourceCodeGenerator sc = new CSharpSourceCodeGenerator(); sc.CurrentIndentLevel = 2; sc.Write(c); Assert.AreEqual(" public static class StringUtility" + SourceCodeGenerator.NewLine + " {" + SourceCodeGenerator.NewLine + " }" + SourceCodeGenerator.NewLine , sc.ToString()); }
public void CodeBlockIndentIsTwoWhitespace() { var cb = new CodeBlock(SourceCodeLanguage.CSharp, "if (bl == true)"); cb.CurlyBracket = true; cb.CodeBlocks.Add(new CodeBlock(SourceCodeLanguage.CSharp, "MessageBox.Show(\"Update successfully!\");")); var cs = new CSharpSourceCodeGenerator(); cs.Indent = " "; cs.Write(cb); Assert.AreEqual("if (bl == true)" + SourceCodeGenerator.NewLine + "{" + SourceCodeGenerator.NewLine + " MessageBox.Show(\"Update successfully!\");" + SourceCodeGenerator.NewLine + "}" + SourceCodeGenerator.NewLine , cs.ToString()); }
private void Execute(SourceCodeFile file) { CSharpSourceCodeGenerator cs = null; using (var stm = new StreamWriter(file.FilePath, false, Encoding.UTF8)) { cs = new CSharpSourceCodeGenerator(stm); cs.Write(file.SourceCode); this.OnFileGenerated(new SourceCodeFileGeneratedEventArgs(file, DateTime.Now)); } Interlocked.Increment(ref _GeneratedCount); if (_GeneratedCount == _SourceCodeCount) { this.OnCompleted(); } }
public void CodeBlockBracket() { var cb = new CodeBlock(SourceCodeLanguage.CSharp, "catch (InvalidCastException ex)"); cb.CurlyBracket = true; cb.CodeBlocks.Add(new CodeBlock(SourceCodeLanguage.CSharp, "throw new StoredProcedureSchemaMismatchedException(this, ex);")); var cs = new CSharpSourceCodeGenerator(); cs.CurrentIndentLevel = 3; cs.Indent = " "; cs.Write(cb); Assert.AreEqual(" catch (InvalidCastException ex)" + SourceCodeGenerator.NewLine + " {" + SourceCodeGenerator.NewLine + " throw new StoredProcedureSchemaMismatchedException(this, ex);" + SourceCodeGenerator.NewLine + " }" + SourceCodeGenerator.NewLine , cs.ToString()); }
public void ClassBasicFeature() { var c = new Class(AccessModifier.Public, "Person"); var f = new Field("Int32", "_Age"); c.Fields.Add(f); var p = new Property("Int32", "Age"); p.Get.Body.Add(new CodeBlock(SourceCodeLanguage.CSharp, "return _Age;")); p.Set.Body.Add(new CodeBlock(SourceCodeLanguage.CSharp, "_Age = value;")); c.Properties.Add(p); var md = new Method(MethodAccessModifier.Public, "GetNumber"); md.Body.Add(SourceCodeLanguage.CSharp, "return 123;"); c.Methods.Add(md); var sw = new StringWriter(); var cs = new CSharpSourceCodeGenerator(sw); cs.Write(c); Assert.AreEqual("public class Person" + SourceCodeGenerator.NewLine + "{" + SourceCodeGenerator.NewLine + " private Int32 _Age;" + SourceCodeGenerator.NewLine + SourceCodeGenerator.NewLine + " public Int32 Age" + SourceCodeGenerator.NewLine + " {" + SourceCodeGenerator.NewLine + " get" + SourceCodeGenerator.NewLine + " {" + SourceCodeGenerator.NewLine + " return _Age;" + SourceCodeGenerator.NewLine + " }" + SourceCodeGenerator.NewLine + " set" + SourceCodeGenerator.NewLine + " {" + SourceCodeGenerator.NewLine + " _Age = value;" + SourceCodeGenerator.NewLine + " }" + SourceCodeGenerator.NewLine + " }" + SourceCodeGenerator.NewLine + SourceCodeGenerator.NewLine + " public void GetNumber()" + SourceCodeGenerator.NewLine + " {" + SourceCodeGenerator.NewLine + " return 123;" + SourceCodeGenerator.NewLine + " }" + SourceCodeGenerator.NewLine + "}" + SourceCodeGenerator.NewLine , sw.ToString()); }
public void ClassBasicFeature() { var c = new Class(AccessModifier.Public, "Person"); var f = new Field("Int32", "_Age"); c.Fields.Add(f); var p = new Property("Int32", "Age"); p.Get.Body.Add(new CodeBlock(SourceCodeLanguage.CSharp, "return _Age;")); p.Set.Body.Add(new CodeBlock(SourceCodeLanguage.CSharp, "_Age = value;")); c.Properties.Add(p); var md = new Method(MethodAccessModifier.Public, "GetNumber"); md.Body.Add(SourceCodeLanguage.CSharp, "return 123;"); c.Methods.Add(md); var sw = new StringWriter(); var cs = new CSharpSourceCodeGenerator(sw); cs.Write(c); Assert.AreEqual("public class Person" + SourceCodeGenerator.NewLine + "{" + SourceCodeGenerator.NewLine + " private Int32 _Age;" + SourceCodeGenerator.NewLine + SourceCodeGenerator.NewLine + " public Int32 Age" + SourceCodeGenerator.NewLine + " {" + SourceCodeGenerator.NewLine + " get" + SourceCodeGenerator.NewLine + " {" + SourceCodeGenerator.NewLine + " return _Age;" + SourceCodeGenerator.NewLine + " }" + SourceCodeGenerator.NewLine + " set" + SourceCodeGenerator.NewLine + " {" + SourceCodeGenerator.NewLine + " _Age = value;" + SourceCodeGenerator.NewLine + " }" + SourceCodeGenerator.NewLine + " }" + SourceCodeGenerator.NewLine + SourceCodeGenerator.NewLine + " public void GetNumber()" + SourceCodeGenerator.NewLine + " {" + SourceCodeGenerator.NewLine + " return 123;"+ SourceCodeGenerator.NewLine + " }" + SourceCodeGenerator.NewLine + "}" + SourceCodeGenerator.NewLine , sw.ToString()); }
protected override void Execute() { String path = this.OutputDirectoryPath; var tablePath = path + "Table"; var tableStoredProcedurePath = path + "TableStoredProcedure"; var storedProcedurePath = path + "StoredProcedure"; var userDefinedTableTypePath = path + "UserDefinedTableType"; ClassSourceCodeFileFactory f = null; var sc = new SourceCodeFileGenerator(); foreach (var table in this.Tables) { f = new TableClassSourceCodeFileFactory(table, this.DatabaseKey); sc.SourceCodes.Add(f.Create(tablePath, this.NamespaceName)); f = new TableRecordClassSourceCodeFileFactory(table); sc.SourceCodes.Add(f.Create(tablePath, this.NamespaceName)); f = new TableIRecordClassSourceCodeFileFactory(table); sc.SourceCodes.Add(f.Create(tablePath, this.NamespaceName)); } foreach (var sp in this.StoredProcedures.Where(el => el.StoredProcedureType != StoredProcedureType.Custom)) { f = new StoredProcedureClassSourceCodeFileFactory(sp, this.DatabaseKey); sc.SourceCodes.Add(f.Create(tableStoredProcedurePath, this.NamespaceName)); } foreach (var sp in this.StoredProcedures.Where(el => el.StoredProcedureType == StoredProcedureType.Custom)) { f = new StoredProcedureClassSourceCodeFileFactory(sp, this.DatabaseKey); sc.SourceCodes.Add(f.Create(storedProcedurePath, this.NamespaceName)); } foreach (var ut in this.UserDefinedTableTypes) { f = new UserDefinedTableTypeSourceCodeFileClassFactory(ut); sc.SourceCodes.Add(f.Create(userDefinedTableTypePath, this.NamespaceName)); } var count = sc.SourceCodes.Count; for (int i = 0; i < count; i++) { var file = sc.SourceCodes[i]; CSharpSourceCodeGenerator cs = null; using (var stm = new StreamWriter(file.FilePath, false, Encoding.UTF8)) { cs = new CSharpSourceCodeGenerator(stm); cs.Write(file.SourceCode); this.OnProcessProgress(new ProcessProgressEventArgs(Path.GetFileName(file.FilePath), i / count)); this.OnFileGenerated(new SourceCodeFileGeneratedEventArgs(file, DateTime.Now)); } } }