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); }
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); } }