/// <summary> /// Print the concept root /// /// </summary> /// <param name="conceptRoot"></param> /// <returns></returns> public TreeViewItem PrintConceptRoot(ConceptRoot conceptRoot) { TreeViewItem treeViewItem = new TreeViewItem(); treeViewItem.Header = "ConceptRoot - " + conceptRoot.name; if (conceptRoot.uuid != "") { treeViewItem.Items.Add("UUID: " + conceptRoot.uuid); } if (conceptRoot.applicableRootEntity != "") { treeViewItem.Items.Add("applicableRootEntity: " + conceptRoot.applicableRootEntity); } Dictionary <string, Concept> allConcepts = conceptRoot.GetAllConcepts(); if (allConcepts.Count > 0) { TreeViewItem conceptItem = new TreeViewItem(); conceptItem.Header = "Concepts"; foreach (var item in allConcepts) { var treeViewItem2 = PrintConcept(item.Value); conceptItem.Items.Add(treeViewItem2); } treeViewItem.Items.Add(conceptItem); } return(treeViewItem); }
internal void AddConceptRootLookup(ConceptRoot conceptRoot) { if (_expressTypeConceptRootLookup == null) { _expressTypeConceptRootLookup = new Dictionary <ExpressType, List <ConceptRoot> >(); } if (string.IsNullOrEmpty(conceptRoot.applicableRootEntity)) { Log.ErrorFormat(@"Null or empty ExpressType for ConceptRoot '{0}' (uuid: {1})", conceptRoot.name, conceptRoot.uuid); return; } try { var tp = GetExpressType(conceptRoot.ParentModelView.applicableSchema, conceptRoot.applicableRootEntity); if (tp == null) { return; } // needs to add conceptRoot to all non abstract sub types AddWithSubtypes(tp, conceptRoot); } catch (Exception) { Log.ErrorFormat(@"ExpressType {0} not recognised for ConceptRoot '{1}' (uuid: {2})", conceptRoot.applicableRootEntity, conceptRoot.name, conceptRoot.uuid); } }
private void AddWithSubtypes(ExpressType tp, ConceptRoot conceptRoot) { AddType(conceptRoot, tp); // todo: should this be tp.SubTypes or allSubTypes (used to be ifcsubtypes before conversion) foreach (var nonAbstractSubType in tp.SubTypes) { AddWithSubtypes(nonAbstractSubType, conceptRoot); } }
// ReSharper disable once UnusedMember.Local private IEnumerable <ReportResult> ReportConceptRoot(ConceptRoot croot, IPersistEntity entity) { ReportTextBox.Text += $"ConceptRoot {croot.name} ({croot.uuid}) on #{entity.EntityLabel}\r\n"; foreach (var cpt2 in croot.Concepts) { var rep = ReportConcept(cpt2, entity); if (!ConfigShowResult(rep)) { continue; } yield return(rep); } }
private void AddType(ConceptRoot conceptRoot, ExpressType st) { List <ConceptRoot> dicItem; if (_expressTypeConceptRootLookup.TryGetValue(st, out dicItem)) { dicItem.Add(conceptRoot); } else { _expressTypeConceptRootLookup.Add(st, new List <ConceptRoot>() { conceptRoot }); } }
public ConceptRootExpander(ConceptRoot conceptRoot) { _conceptRoot = conceptRoot; }