Beispiel #1
0
        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();
     }
 }
Beispiel #4
0
        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());
        }
Beispiel #5
0
        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());
        }
Beispiel #6
0
        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());
        }
Beispiel #7
0
        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());
        }
Beispiel #8
0
        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();
            }
        }
Beispiel #10
0
        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());
        }
Beispiel #11
0
        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());
        }
        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();
            }
        }
Beispiel #13
0
        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());
        }
Beispiel #14
0
        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());
        }
Beispiel #15
0
        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());
        }
Beispiel #16
0
        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());
        }
Beispiel #17
0
        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());
        }
 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();
     }
 }
        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));
                }
            }
        }