Esempio n. 1
0
        private string FormatChecklistRow(ChecklistData item, int i, ChecklistReportRankDepth? depth)
        {
            string result = "";
            switch (item.Type.ToLower()) {
                case "is":
                    result = "incertae sedis ";
                    break;
                case "si":
                    result = "Species inquirenda ";
                    break;
                default:
                    switch (item.RankCategory.ToLower()) {
                        case "g":
                        case "s":
                            if (item.Verified) {
                                result = string.Format(@"\i {0} \i0 ", UnItalicize(item.DisplayName, "subsp.|var.|sub.var.|form |sub.form "));
                            } else {
                                result = item.DisplayName;
                            }
                            break;
                        default:
                            result = item.DisplayName;
                            break;
                    }

                    // Add the rank if necessary...
                    if (depth.HasValue) {
                        switch (item.RankCategory.ToLower()) {
                            case "h":
                            case "f":
                                result = item.Rank + " " + result;
                                break;
                            case "g":
                                if (depth == ChecklistReportRankDepth.Subgenus) {
                                    result = item.Rank + " " + result;
                                }
                                break;
                            default:
                                break;
                        }
                    }
                    break;
            }

            // Unitalicise the author/year component if applicable.
            if (!string.IsNullOrWhiteSpace(item.Author)) {
                int index = result.IndexOf(item.Author);
                if (index >= 0) {
                    result = result.Substring(0, index - 1) + "\\i0 " + result.Substring(index - 1);
                }
            }

            return result;
        }
Esempio n. 2
0
        public DataMatrix ChecklistReport(int taxonID, string criteriaDisplayText, ChecklistReportExtent extent, bool availableNames, bool literatureNames, ChecklistReportRankDepth? depth, bool userDefinedOrder, bool verifiedOnly, List<TaxonRankName> selectedRanks)
        {
            var b = new RTFReportBuilder();

            var data = GetChecklistData(taxonID, 0, extent == ChecklistReportExtent.FullHierarchy, userDefinedOrder, verifiedOnly, selectedRanks);

            // Process the list, generating the RTF...
            // Create the Header inforrmation
            b.AppendFullHeader();
            // Create the title information
            b.Append(@"\pard\fs36\b Taxon Checklist Report\b0\pard\par\fs22 ").Append(criteriaDisplayText).Append(@"\pard\par\fs16 Generated: ");
            b.AppendCurrentDate().Par().Par();

            int i = 0;
            foreach (ChecklistData item in data) {
                ++i;
                if (!availableNames && item.AvailableName || !literatureNames && item.LiteratureName) {
                    // ignore this one
                } else {
                    b.Append(@"\par\pard\fs20\li{0} {1}", item.IndentLevel * 300, FormatChecklistRow(item, i, depth));
                }
            }

            b.Append("}");

            return b.GetAsMatrix();
        }