/// <summary>
        /// Generates a document on the server and returns the full url to it.
        /// </summary>
        /// <param name="output"></param>
        /// <returns></returns>
        public static string GenerateImageOnYumlServer(YumlClassOutput output)
        {
            Logger.Log(string.Format("Generating image on yuml server, class diagram: '{0}'", output.ClassDiagram), LogLevel.High);

            ServicePointManager.Expect100Continue = false;
            WebRequest req = WebRequest.Create(YumlClassUrl);
            //req.Proxy = new System.Net.WebProxy(ProxyString, true);
            //Add these, as we're doing a POST
            req.ContentType = "application/x-www-form-urlencoded";
            req.Method = "POST";
            //We need to count how many bytes we're sending. Post'ed Faked Forms should be name=value&
            byte[] bytes = Encoding.ASCII.GetBytes("dsl_text=" + EncodeForHttpPost(output.ClassDiagram.ToString()));
            req.ContentLength = bytes.Length;
            Stream os = req.GetRequestStream();
            os.Write(bytes, 0, bytes.Length); //Push it out there
            os.Close();
            WebResponse resp = req.GetResponse();

            var sr = new StreamReader(resp.GetResponseStream());
            string pngName = sr.ReadToEnd().Trim();

            var imageOnYumlServer = YumlClassUrl + pngName;
            Logger.Log(string.Format("image has been generated on server with url of :'{0}'", imageOnYumlServer), LogLevel.High);
            return imageOnYumlServer;
        }
        public YumlClassOutput Translate(ProjectDetail rootProjectDetail, ProjectDetailsCollection parentProjectDetailsCollection, bool newlineForEachRelationship = false)
        {
            Logger.Log("Translating ProjectDetail to YumlClassOutput", LogLevel.High);

            var output = new YumlClassOutput();
            output.RootFile = rootProjectDetail.FullPath;

            output.ClassDiagram = GenerateClassDiagram(rootProjectDetail, parentProjectDetailsCollection, newlineForEachRelationship);
            return output;
        }
        public YumlClassOutput Translate(RootNode rootNode, bool newlineForEachRelationship = false)
        {
            Logger.Log("Translating rootNode to YumlClassOutput", LogLevel.High);

            var output = new YumlClassOutput();
            output.RootFile = rootNode.File.FullName;

            output.ClassDiagram = GenerateClassDiagram(rootNode, newlineForEachRelationship);
            return output;
        }