Exemple #1
0
    /// <summary>
    /// Generates a dictionary mapping from snippet file name to documentation page listing the snippet.
    /// </summary>
    /// <param name="version">Docs version (e.g. V1, Beta)</param>
    /// <returns>Dictionary holding the mapping from snippet file name to documentation page listing the snippet.</returns>
    public static Dictionary <string, string> GetDocumentationLinks(Versions version, Languages language)
    {
        var documentationLinks     = new Dictionary <string, string>();
        var documentationDirectory = GraphDocsDirectory.GetDocumentationDirectory(version);
        var files              = Directory.GetFiles(documentationDirectory);
        var languageName       = language.AsString();
        var SnippetLinkPattern = @$ "includes\/snippets\/{languageName}\/(.*)\-{languageName}\-snippets\.md";
        var SnippetLinkRegex   = new Regex(SnippetLinkPattern, RegexOptions.Compiled);

        foreach (var file in files)
        {
            var content  = File.ReadAllText(file);
            var fileName = Path.GetFileNameWithoutExtension(file);
            var docsLink = $"https://docs.microsoft.com/en-us/graph/api/{fileName}?view=graph-rest-{new VersionString(version).DocsUrlSegment()}&tabs={languageName}";

            var match = SnippetLinkRegex.Match(content);
            while (match.Success)
            {
                documentationLinks[$"{match.Groups[1].Value}-{languageName}-snippets.md"] = docsLink;
                match = match.NextMatch();
            }
        }

        return(documentationLinks);
    }