Beispiel #1
0
        public object Clone()
        {
            var model = new ExportTaxonCategory();

            model.IsChecked    = this.IsChecked;
            model.CategoryName = this.CategoryName;
            model.CategoryId   = this.CategoryId;
            //model.Id = this.Id;
            model.SortOrder = this.SortOrder;
            return(model);
        }
Beispiel #2
0
        public static ExportTaxonCategory Create(ITaxonCategory taxonCategory, bool isChecked)
        {
            var model = new ExportTaxonCategory();

            model.IsChecked    = isChecked;
            model.CategoryName = taxonCategory.Name;
            model.CategoryId   = taxonCategory.Id;
            //model.Id = taxonCategory.Id;
            model.SortOrder = taxonCategory.SortOrder;
            return(model);
        }
        /// <summary>
        /// Init selection of taxon categories.
        /// Taxon categories are always based on valid taxa and taxon relations.
        /// The code must be changed if this assumption is not correct.
        /// </summary>
        /// <param name="userContext">User context.</param>
        /// <param name="taxon">Taxon.</param>
        private void InitTaxonCategories(IUserContext userContext, ITaxon taxon)
        {
            ExportTaxonCategory taxonCategory;

            TaxonCategories          = CoreData.TaxonManager.GetTaxonCategories(userContext);
            FilterAllTaxonCategories = new List <ExportTaxonCategory>();

            // Add all parent taxon categories.
            FilterParentTaxonCategories = new List <ExportTaxonCategory>();
            foreach (ITaxonCategory parentTaxonCategory in TaxonTree.GetParentTaxonCategories())
            {
                taxonCategory = ExportTaxonCategory.Create(parentTaxonCategory, false);
                FilterParentTaxonCategories.Add(taxonCategory);
                if (!FilterAllTaxonCategories.Exists(x => x.CategoryId == taxonCategory.CategoryId))
                {
                    FilterAllTaxonCategories.Add(taxonCategory);
                }
            }

            // Add the current taxon category.
            FilterCurrentTaxonCategory = ExportTaxonCategory.Create(taxon.Category, true);
            if (!FilterAllTaxonCategories.Exists(x => x.CategoryId == FilterCurrentTaxonCategory.CategoryId))
            {
                FilterAllTaxonCategories.Add(FilterCurrentTaxonCategory);
            }

            // Add all child taxon categories.
            FilterChildrenTaxonCategories = new List <ExportTaxonCategory>();
            foreach (ITaxonCategory childTaxonCategory in TaxonTree.GetChildTaxonCategories())
            {
                taxonCategory = ExportTaxonCategory.Create(childTaxonCategory, childTaxonCategory.IsMainCategory);
                FilterChildrenTaxonCategories.Add(taxonCategory);
                if (!FilterAllTaxonCategories.Exists(x => x.CategoryId == taxonCategory.CategoryId))
                {
                    FilterAllTaxonCategories.Add(taxonCategory);
                }
            }

            // Create output categories by cloning from filter categories.
            OutputAllTaxonCategories    = new List <ExportTaxonCategory>();
            OutputParentTaxonCategories = new List <ExportTaxonCategory>();
            foreach (ExportTaxonCategory filterParentTaxonCategory in FilterParentTaxonCategories)
            {
                taxonCategory           = (ExportTaxonCategory)filterParentTaxonCategory.Clone();
                taxonCategory.IsChecked = false;
                OutputParentTaxonCategories.Add(taxonCategory);
                OutputAllTaxonCategories.Add(taxonCategory);
            }

            OutputCurrentTaxonCategory           = (ExportTaxonCategory)FilterCurrentTaxonCategory.Clone();
            OutputCurrentTaxonCategory.IsChecked = false;
            OutputAllTaxonCategories.Add(OutputCurrentTaxonCategory);

            OutputChildTaxonCategories = new List <ExportTaxonCategory>();
            foreach (ExportTaxonCategory filterChildTaxonCategory in FilterChildrenTaxonCategories)
            {
                taxonCategory           = (ExportTaxonCategory)filterChildTaxonCategory.Clone();
                taxonCategory.IsChecked = false;
                OutputChildTaxonCategories.Add(taxonCategory);
                OutputAllTaxonCategories.Add(taxonCategory);
            }
        }