Esempio n. 1
0
        private void WalkTemplateDirectory(TemplateDirectory templatesDir, StringBuilder stringBuilder, int depth, string lang)
        {
            var spacesStringBuilder = new StringBuilder();

            for (int i = 0; i < depth * 2; i++)
            {
                spacesStringBuilder.Append("&nbsp;");
            }
            _uid++;
            var id     = "ID_" + _uid;
            var spaces = spacesStringBuilder.ToString();

            stringBuilder.AppendLine("<table width=\"100%\" border=\"0\" cellspacing=\"3\" cellpadding=\"3\" >");
            stringBuilder.AppendLine(string.Format("<tr><td colspan=\"4\">{0}<a href=\"#\" onclick=\"ShowHideDiv('{1}'); return false;\">{2}</a></td></tr>", spaces, id, templatesDir.GetName()));
            stringBuilder.AppendLine("</table>");
            stringBuilder.AppendLine(string.Format("<div style=\"display:none;\" id=\"{0}\">", id));
            stringBuilder.AppendLine("<table width=\"100%\" border=\"0\" cellspacing=\"3\" cellpadding=\"3\">");
            foreach (var templateDocumentationPage in templatesDir.ContainingTemplateDocPages)
            {
                var locTemplate = templateDocumentationPage.CurrentLocalization;
                var description = _objectConverter.Convert(locTemplate.SummaryOrDescription, templateDocumentationPage);
                description = description.Replace("../", ""); //correct relative paths in images
                stringBuilder.AppendLine(string.Format("<tr><td>{0}&nbsp;</td><td><div class=\"boximage\"><img src=\"{1}\"></div></td><td><a href=\"{2}\">{3}</a></td><td>{4}</td></tr>", spaces, templateDocumentationPage.Icon, locTemplate.FilePath, locTemplate.Name, description));
            }
            foreach (var dir in templatesDir.SubDirectories)
            {
                stringBuilder.AppendLine("<tr><td colspan=\"4\">");
                WalkTemplateDirectory(dir, stringBuilder, depth + 1, lang);
                stringBuilder.AppendLine("</td></tr>");
            }
            stringBuilder.AppendLine("</table>");
            stringBuilder.AppendLine("</div>");
        }
Esempio n. 2
0
        public static string ReplaceDocItemTags(string html, LocalizedEntityDocumentationPage localizedDocumentationPage, ObjectConverter objectConverter)
        {
            int    pos;
            int    len;
            string property;
            var    htmlBuilder = new StringBuilder(html);

            while ((property = FindDocItemTag(htmlBuilder.ToString(), out pos, out len)) != null)
            {
                try
                {
                    var prop    = localizedDocumentationPage.GetType().GetProperty(property);
                    var propVal = prop.GetValue(localizedDocumentationPage, null);
                    var propStr = objectConverter == null ? (propVal == null ? Resources.Null : propVal.ToString()) : objectConverter.Convert(propVal, localizedDocumentationPage.DocumentationPage);

                    htmlBuilder.Remove(pos, len);
                    htmlBuilder.Insert(pos, propStr);
                }
                catch (Exception ex)
                {
                    throw new Exception(string.Format("Error trying to replace DocItem tag with property {0}! Message: {1}", property, ex.Message));
                }
            }

            return(htmlBuilder.ToString());
        }