public List<HierarchicalViewModelBase> LoadModel(HierarchicalViewModelBase parent) { var service = new TaxaService(User); List<Taxon> model = null; if (parent == null) { model = service.GetTopLevelTaxa(); } else { model = service.GetTaxaForParent((parent as TaxonViewModel).TaxaID.Value); } if (model != null) { var temp = model.Where((taxon) => { return _options == LookupOptions.TaxonExcludeAvailableNames ? !taxon.AvailableName.ValueOrFalse() : true; }).Select((m) => { return new TaxonViewModel(parent, m, _explorer.GenerateTaxonDisplayLabel); }); var list = new List<HierarchicalViewModelBase>(temp); return list; } return null; }
private void BuildTaxaChildrenViewModel(HierarchicalViewModelBase item, int taxaID) { // The model node is a Taxon favorites, so we can get the 'real' taxon children for it... item.Children.Clear(); var taxaService = new TaxaService(User); List<Taxon> taxa = taxaService.GetTaxaForParent(taxaID); foreach (Taxon taxon in taxa) { TaxonViewModel child = new TaxonViewModel(item, taxon, null); if (child.NumChildren > 0) { child.LazyLoadChildren += new HierarchicalViewModelAction(viewModel_LazyLoadChildren); child.Children.Add(new ViewModelPlaceholder("Loading...")); } item.Children.Add(child); } }