/// <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); }