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); } }
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); } } }