예제 #1
0
        //private void AddMisappliedNames(ExcelWorksheet worksheet, ExportTaxonItem taxonItem, int rowIndex, int columnIndex)
        //{
        //    if (taxonItem.MisappliedNames.IsEmpty())
        //    {
        //        return;
        //    }

        //    using (ExcelRange range = worksheet.Cells[rowIndex, columnIndex])
        //    {
        //        range.IsRichText = true;
        //        ExcelRichText ert;

        //        for (int i = 0; i < taxonItem.MisappliedNames.Count; i++)
        //        {
        //            TaxonNameViewModel taxonName = taxonItem.MisappliedNames[i];
        //            if (i > 0)
        //            {
        //                ert = range.RichText.Add("; ");
        //                ert.Italic = false;
        //            }

        //            ert = range.RichText.Add(taxonName.Name);
        //            ert.Italic = taxonName.IsScientificName;
        //            if (!string.IsNullOrEmpty(taxonName.Author))
        //            {
        //                ert = range.RichText.Add(string.Format(" {0}", taxonName.Author));
        //                ert.Italic = false;
        //            }
        //        }
        //    }
        //}

        //private void AddProParteSynonyms(ExcelWorksheet worksheet, ExportTaxonItem taxonItem, int rowIndex, int columnIndex)
        //{

        //}

        private void AddNames(List <TaxonNameViewModel> names, ExcelWorksheet worksheet, ExportTaxonItem taxonItem, int rowIndex, int columnIndex)
        {
            if (names.IsEmpty())
            {
                return;
            }

            using (ExcelRange range = worksheet.Cells[rowIndex, columnIndex])
            {
                range.IsRichText = true;
                ExcelRichText ert;

                for (int i = 0; i < names.Count; i++)
                {
                    TaxonNameViewModel taxonName = names[i];
                    if (i > 0)
                    {
                        ert        = range.RichText.Add("; ");
                        ert.Italic = false;
                    }

                    ert        = range.RichText.Add(taxonName.Name);
                    ert.Italic = taxonName.IsScientificName;
                    if (!string.IsNullOrEmpty(taxonName.Author) && (!_options.OutputAuthorForSynonyms))
                    {
                        ert        = range.RichText.Add(string.Format(" {0}", taxonName.Author));
                        ert.Italic = false;
                    }
                }
            }
        }
예제 #2
0
 public static MvcHtmlString RenderTaxonName(this HtmlHelper htmlHelper, TaxonNameViewModel model)
 {
     return(htmlHelper.RenderScientificName(model.Name, model.Author, model.IsScientificName ? model.TaxonCategorySortOrder : -1, model.IsOriginal));
 }
예제 #3
0
        public static MvcHtmlString RenderTaxonNameWithStatus(this HtmlHelper htmlHelper, TaxonNameViewModel taxonName)
        {
            string name       = taxonName.Name;
            string author     = taxonName.Author;
            int    sortOrder  = taxonName.IsScientificName ? taxonName.TaxonCategorySortOrder : -1;
            bool   isOriginal = taxonName.IsOriginal;

            var result = new StringBuilder();

            ITaxonCategory genusTaxonCategory = CoreData.TaxonManager.GetTaxonCategory(
                CoreData.UserManager.GetCurrentUser(),
                TaxonCategoryId.Genus);

            if (sortOrder >= genusTaxonCategory.SortOrder)
            {
                var tag = new TagBuilder("em");
                tag.SetInnerText(name);
                result.Append(tag.ToString());
            }
            else
            {
                result.Append(htmlHelper.Encode(name));
            }

            if (!string.IsNullOrEmpty(author))
            {
                result.Append(" ");
                result.Append(htmlHelper.Encode(author));
            }
            if (isOriginal)
            {
                result.Append("*");
            }

            List <string> extraInfo = new List <string>();

            // Spelling variant
            if (taxonName.NameUsageId == (int)TaxonNameUsageId.Accepted &&
                taxonName.IsScientificName && !taxonName.IsRecommended)
            {
                extraInfo.Add(Resources.DyntaxaResource.TaxonNameSharedSpellingVariant);
            }

            // Heterotypic or Homotypic
            if (taxonName.NameUsageId == (int)TaxonNameUsageId.Heterotypic ||
                taxonName.NameUsageId == (int)TaxonNameUsageId.Homotypic)
            {
                extraInfo.Add(taxonName.NameUsage);
            }

            // Name status isn't Correct.
            if (taxonName.NameStatusId != (int)TaxonNameStatusId.ApprovedNaming)
            {
                extraInfo.Add(taxonName.NameStatus);
            }
            else if (taxonName.CategoryTypeId == (int)TaxonNameCategoryTypeId.Identifier &&
                     !(taxonName.NameStatusId == (int)TaxonNameStatusId.ApprovedNaming || taxonName.NameStatusId == (int)TaxonNameStatusId.Informal))
            { // Identifier status isn't correct.
                extraInfo.Add(taxonName.NameStatus);
            }

            if (extraInfo.IsNotEmpty())
            {
                result.Append(" [");
                result.Append(string.Join(", ", extraInfo));
                result.Append("]");
            }

            //// Add information inside [] if name status isn't Correct,
            //// or name usage is Heterotypic or homotypic.
            //if (taxonName.NameStatusId != (int)TaxonNameStatusId.ApprovedNaming || taxonName.NameUsageId == (int)TaxonNameUsageId.Heterotypic || taxonName.NameUsageId == (int)TaxonNameUsageId.Homotypic)
            //{
            //    bool itemHasBeenAdded = false;
            //    result.Append(" [");
            //    if (taxonName.NameUsageId == (int)TaxonNameUsageId.Accepted &&
            //        taxonName.IsScientificName && !taxonName.IsRecommended)
            //    {
            //        result.Append(Resources.DyntaxaResource.TaxonNameSharedSpellingVariant);
            //        itemHasBeenAdded = true;
            //    }

            //    if (taxonName.NameUsageId == (int)TaxonNameUsageId.Heterotypic ||
            //        taxonName.NameUsageId == (int)TaxonNameUsageId.Homotypic)
            //    {
            //        if (itemHasBeenAdded)
            //        {
            //            result.Append(", ");
            //        }

            //        result.Append(taxonName.NameUsage);
            //        itemHasBeenAdded = true;
            //    }

            //    if (taxonName.NameStatusId != (int)TaxonNameStatusId.ApprovedNaming)
            //    {
            //        if (itemHasBeenAdded)
            //        {
            //            result.Append(", ");
            //        }

            //        result.Append(taxonName.NameStatus);
            //    }

            //    result.Append("]");
            //}

            return(MvcHtmlString.Create(result.ToString()));
        }