public static string RenderWebApp(WebApplication webApp, IDataRenderer renderer)
        {
            var    tableDeMatiere = new TableDeMatiere();
            string entete         = RenderStyle() +
                                    renderer.RenderTitle("SONES - Portail SharePoint", 1) +
                                    renderer.RenderTitle("Documentation Fonctionnelles et Techniques\n***\n", 1);
            string t = renderer.RenderTitle("Introduction :", 2) +
                       renderer.RenderTitle("Applications web :", 2) +
                       renderer.RenderTitle("Sites :\n", 3);

            foreach (var site in webApp.Sites)
            {
                t += RenderSite(site, webApp.Features, tableDeMatiere, renderer);
            }
            return(entete + t);
        }
        private static string RenderFeature(CustomFeature feature, TableDeMatiere tableDeMatiere, IDataRenderer renderer)
        {
            string rendu = "";

            if (feature.DependentOn.Count > 0)
            {
                rendu += "Cette fonctionnalité depend des fonctionnalités suivantes :\n" +
                         new HTMLRenderer().RenderUnorderedList(feature.DependentOn);
            }
            rendu += RenderGroups(feature.Groups, renderer);
            rendu += RenderLists(feature.Lists, feature, renderer);
            string tF = string.Format("Fonctionnalité {0}", feature.Name);

            if (string.IsNullOrWhiteSpace(rendu))
            {
                return("");
            }
            return(renderer.RenderTitle(tF, 6) + rendu);
        }
        //public static string RenderTableOfContent(TableOfContent tableDeMatiere, IDataRenderer dataRenderer)
        //{
        //    int _lastLevel = 4;
        //    string _markdownTable = "";
        //    foreach (var titre in tableDeMatiere.Titres)
        //    {
        //        var titres = new List<string>();

        //        var title = dataRenderer.RenderLink(titre.Title, titre.LinkId);
        //        if (titre.Level == _lastLevel)
        //        {
        //            _markdownTable += "<ol type='I'><li>" + titre.Title + "</li>\n";
        //        }
        //    }
        //    return "</ol>" + _markdownTable;
        //}

        private static string RenderSite(Site site, List <CustomFeature> webAppFeatures, TableDeMatiere tableDeMatiere,
                                         IDataRenderer renderer)
        {
            var enable = "";
            var modele = "";

            switch (site.Template)
            {
            case "STS#1":
            {
                modele = "Blank Site(1033)";

                ;
                break;
            }

            case "STS#0":
            {
                modele = "Team Site (1033)";
                break;
            }

            case "GLOBAL#0":
            {
                modele = "Global template (1033)";
                break;
            }
            }
            string titre = string.Format("Site {0}", site.Name);
            string rendu = renderer.RenderTitle(titre, 4);

            rendu += string.Format(_formatSite, site.Description, modele);
            var fonctionnaliteSiteTable = new DataTable();

            fonctionnaliteSiteTable.Header.Add("Description");
            fonctionnaliteSiteTable.Header.Add("Activer");
            foreach (var sitefeature in site.Features)
            {
                if (sitefeature.Enable == true)
                {
                    enable = "Oui";
                }
                else
                {
                    enable = "Non";
                }
                var row = new List <string>();
                row.Add(sitefeature.Description);
                row.Add(enable);
                fonctionnaliteSiteTable.Rows.Add(row);
            }
            rendu += renderer.RenderTitle("Fonctionnalités du site", 5) + new HTMLRenderer().RenderTable(fonctionnaliteSiteTable);
            var fonctionnaliteWebTable = new DataTable();

            fonctionnaliteWebTable.Header.Add("Description");
            fonctionnaliteWebTable.Header.Add("Activer");
            foreach (var webfeature in site.WebFeatures)
            {
                if (webfeature.Enable == true)
                {
                    enable = "Oui";
                }
                else
                {
                    enable = "Non";
                }
                var row = new List <string>();
                row.Add(webfeature.Description);
                row.Add(enable);
                fonctionnaliteWebTable.Rows.Add(row);
            }
            rendu += renderer.RenderTitle("Fonctionnalités du web", 5) + new HTMLRenderer().RenderTable(fonctionnaliteWebTable);
            rendu += renderer.RenderTitle("Fonctionnalités personnalisées", 5);
            foreach (var customfeature in site.CustomFeatures)
            {
                var customFeatureInfo = webAppFeatures.FirstOrDefault(ft => ft.Name == customfeature);
                if (customFeatureInfo != null)
                {
                    rendu += RenderFeature(customFeatureInfo, tableDeMatiere, renderer);
                }
            }
            return(rendu);
        }