public SDLanguageItemCollection<SDDocumentation> ParseDocumentation(ISymbol symbol) { var documentationXml = symbol.GetDocumentationCommentXml(); var docDic = new SDLanguageItemCollection<SDDocumentation>(); if (!string.IsNullOrEmpty(documentationXml)) { var xml = XDocument.Parse($"<doc>{documentationXml}</doc>"); foreach (var child in xml.Descendants()) { var isoCode = child.Name.LocalName.ToLower(); if (CultureInfo.GetCultures(CultureTypes.NeutralCultures).Any(c => c.TwoLetterISOLanguageName == isoCode) || isoCode == "default") { // TODO //_sdRepository.AddDocumentationLanguage(child.Name.ToLower()); var languageDoc = ParseDocumentation(child.Descendants(), true); if(!docDic.ContainsKey(isoCode)) docDic.Add(isoCode, languageDoc); } } //Es wurde keine Sprachunterstützung in der Doku genutzt. //Deswegen wird die Doku einfach als "default" geladen. if (docDic.Count == 0) { var defaultDoc = ParseDocumentation(xml.Descendants()); docDic.Add("default", defaultDoc); } } return docDic; }
public SDLanguageItemCollection <SDDocumentation> ParseDocumentation(ISymbol symbol) { var documentationXml = symbol.GetDocumentationCommentXml(); var docDic = new SDLanguageItemCollection <SDDocumentation>(); if (!string.IsNullOrEmpty(documentationXml)) { var xml = XDocument.Parse($"<doc>{documentationXml}</doc>"); foreach (var child in xml.Descendants()) { var isoCode = child.Name.LocalName.ToLower(); if (CultureInfo.GetCultures(CultureTypes.NeutralCultures).Any(c => c.TwoLetterISOLanguageName == isoCode) || isoCode == "default") { // TODO //_sdRepository.AddDocumentationLanguage(child.Name.ToLower()); var languageDoc = ParseDocumentation(child.Descendants(), true); if (!docDic.ContainsKey(isoCode)) { docDic.Add(isoCode, languageDoc); } } } //Es wurde keine Sprachunterstützung in der Doku genutzt. //Deswegen wird die Doku einfach als "default" geladen. if (docDic.Count == 0) { var defaultDoc = ParseDocumentation(xml.Descendants()); docDic.Add("default", defaultDoc); } } return(docDic); }