//--------------------------------------------------------------------------------- void OnCommentLoaded(object _owner, TaxonComments.TaxonCommentRequestResult _result) { if (_owner != this) { return; } BeginInvoke((Action)(() => SetComments(_result))); }
//--------------------------------------------------------------------------------- void SetComments(TaxonComments.TaxonCommentRequestResult _result) { _HtmlDivs.Clear(); foreach (var tuple in _result.Comments) { string name = tuple.Item1.Desc.RefMainName; string frenchName = tuple.Item1.Desc.FrenchMainName; string comment = tuple.Item2; if (string.IsNullOrEmpty(name)) { name = "unnamed"; } string displayName = name; if (!string.IsNullOrEmpty(frenchName)) { displayName += " ( " + frenchName + " )"; } if (comment != null) { int indexStart = comment.IndexOf("<body>"); if (indexStart == -1) { return; } indexStart += 6; int indexEnd = comment.IndexOf("</body>"); if (indexEnd == -1) { return; } if (indexEnd <= indexStart) { return; } string body = comment.Substring(indexStart, indexEnd - indexStart); _HtmlDivs.Add(new HtmlDiv() { Name = name, Content = body, DisplayName = displayName, Taxon = tuple.Item1 }); } else { _HtmlDivs.Add(new HtmlDiv() { Name = name, Content = null, DisplayName = displayName, Taxon = tuple.Item1 }); } } BuildHtml(); webBrowser.DocumentText = HtmlDocument; }