コード例 #1
0
        public static void ConvertToCSharp(string apexDir, string cSharpDir, string nameSpace)
        {
            var apexDirInfo = new DirectoryInfo(apexDir);

            ValidateDir(apexDirInfo);
            var cSharpDirInfo = new DirectoryInfo(cSharpDir);

            ValidateDir(cSharpDirInfo);

            FileInfo[] apexFileList = apexDirInfo.GetFiles("*.cls");

            foreach (var apexFile in apexFileList)
            {
                Console.WriteLine($"Convertiong {apexFile}");

                // Read and Convert to C#, Make sure to pass the name of the namespace.
                var cSharpCode = File.ReadAllText(apexFile.FullName);
                var cSharpFile = ApexSharpParser.ConvertApexToCSharp(cSharpCode, nameSpace);

                // Save the converted C# File
                var cSharpFileName = Path.ChangeExtension(apexFile.Name, ".cs");
                var cSharpFileSave = Path.Combine(cSharpDirInfo.FullName, cSharpFileName);

                Console.WriteLine($"Saving {cSharpFileSave}");

                File.WriteAllText(cSharpFileSave, cSharpFile);
            }
        }
コード例 #2
0
        public static void ConvertToApex(string cSharpDir, string apexDir, int salesForceVersion)
        {
            var apexDirInfo = new DirectoryInfo(apexDir);

            ValidateDir(apexDirInfo);
            var cSharpDirInfo = new DirectoryInfo(cSharpDir);

            ValidateDir(cSharpDirInfo);

            FileInfo[] cSharpFileList = cSharpDirInfo.GetFiles("*.cs");

            foreach (var cSharpFile in cSharpFileList)
            {
                var cSharpCode = File.ReadAllText(cSharpFile.FullName);

                foreach (var colleciton in ApexSharpParser.ConvertToApex(cSharpCode))
                {
                    var apexFileName = Path.ChangeExtension(colleciton.Key, ".cls");
                    var apexFile     = Path.Combine(apexDirInfo.FullName, apexFileName);
                    File.WriteAllText(apexFile, colleciton.Value);

                    var metaFileName = Path.ChangeExtension(apexFile, ".cls-meta.xml");
                    var metaFile     = new StringBuilder();

                    metaFile.AppendLine("<?xml version = \"1.0\" encoding = \"UTF-8\"?>");
                    metaFile.AppendLine("<ApexClass xmlns = \"http://soap.sforce.com/2006/04/metadata\">");
                    metaFile.AppendLine($"<apiVersion>{salesForceVersion}.0</apiVersion>");
                    metaFile.AppendLine("<status>Active</status>");
                    metaFile.AppendLine("</ApexClass>");

                    File.WriteAllText(metaFileName, metaFile.ToString());

                    Console.WriteLine(metaFileName);
                }
            }
        }