/// <summary> /// Get string with taxonomic information. /// </summary> /// <returns>String with taxonomic information.</returns> private String GetAutomaticTaxonomicString() { StringBuilder text; if (_taxonomicParagraphSpeciesFact.IsNotNull() && (_taxonomicParagraphSpeciesFact.Quality.Id == (Int32)SpeciesFactQualityId.VeryGood) && _taxonomicParagraphSpeciesFact.Field5.HasValue) { return(_taxonomicParagraphSpeciesFact.Field5.StringValue); } text = new StringBuilder(); if (_taxon.IsNotNull()) { _italicStringsInAutomaticTaxonomicParagraph.Clear(); Int32 startFromIndex = ParentTaxa.Count - 3; if (startFromIndex < 0) { startFromIndex = 0; } for (Int32 index = startFromIndex; index < ParentTaxa.Count; index++) { if (text.ToString() != String.Empty) { text.Append(", "); } text.Append(ParentTaxa[index].Category.Name + " "); text.Append(ParentTaxa[index].ScientificName); //Eventuellt ska denna kodrad tas bort (förslag från Tomas Hallingbäck): Överordnade taxa bör ej vara kursiverade //Enligt artexperternas diskussion 2010-03-04 ska överordnade vetenskapliga taxonnamn ej kursiveras! //_italicStringsInAutomaticTaxonomicParagraph.Add(suitableParents[index].ScientificName); if (ParentTaxa[index].CommonName.IsNotEmpty()) { text.Append(" (" + ParentTaxa[index].CommonName + ")"); } } if (text.ToString() != String.Empty) { text.Append(", "); } text.Append(_taxon.GetScientificNameAndAuthor()); _italicStringsInAutomaticTaxonomicParagraph.Add(_taxon.ScientificName); if (Synonyms.Count > 0) { text.Append(". Syn. "); for (Int32 itemIndex = 0; itemIndex < Synonyms.Count; itemIndex++) { if (itemIndex > 0) { if (itemIndex == Synonyms.Count - 1) { text.Append(" och "); } else { text.Append(", "); } } text.Append(Synonyms[itemIndex].Name); if (Synonyms[itemIndex].Author.IsNotEmpty()) { text.Append(" " + Synonyms[itemIndex].Author); } } } if (text.ToString() != String.Empty) { text.Append(". "); } } String cleanText = text.ToString().Replace("..", "."); return(cleanText); }