static void Main(string[] args) { string taskXmlDir = Path.GetFullPath("../../taskfiles"); string taskXmlFile = "reverse.task.xml"; XmlDocument taskXml = new XmlDocument(); taskXml.Load(Path.Combine(taskXmlDir, taskXmlFile)); foreach (XmlNode embeddedFile in taskXml.SelectNodes("//manifest/embedded_file | //input/embedded_file")) { XmlAttribute location = embeddedFile.Attributes["location"]; embeddedFile.InnerText = ReadBase64EncodedFromFile(Path.Combine(taskXmlDir, location.Value)); embeddedFile.Attributes.Remove(location); } taskXml.Save(Path.Combine(taskXmlDir, "INPUT_" + taskXmlFile)); string taskId; AlchemiXPM.CrossPlatformManager proxy = new AlchemiXPM.CrossPlatformManager(); Console.WriteLine("Submitting..."); taskId = proxy.SubmitTask("user", "user", taskXml.OuterXml); Console.WriteLine("Finished submitting (taskId = '{0}').\nWait a bit and hit <Enter> to get results.", taskId); Console.ReadLine(); Console.WriteLine("Getting results..."); XmlDocument resultsXml = new XmlDocument(); resultsXml.LoadXml(proxy.GetFinishedJobs("user", "user", taskId)); resultsXml.Save(Path.Combine(taskXmlDir, "RESULT_" + taskXmlFile)); foreach (XmlNode embeddedFile in resultsXml.SelectNodes("//output/embedded_file")) { WriteBase64EncodedToFile(Path.Combine(taskXmlDir, embeddedFile.Attributes["name"].Value), embeddedFile.InnerText); Console.WriteLine(" Wrote output file {0}", embeddedFile.Attributes["name"].Value); } Console.ReadLine(); }