private void CheckTranslations(OntologyTerm source, VmOpenApiFintoItemVersionBase target) { target.Code.Should().Be(source.Code); target.Name.First().Value.Should().Be(source.Label); target.OntologyType.Should().Be(source.OntologyType); target.Uri.Should().Be(source.Uri); }
/// <summary> /// /// </summary> /// <param name="rootTerm"></param> /// <param name="targetTerm"></param> /// <returns></returns> private IEnumerable <OntologyTerm> TracePath(OntologyTerm rootTerm, OntologyTerm targetTerm) { var path = new List <OntologyTerm> { rootTerm }; var targetTermFound = rootTerm.ChildrenOntologyTerms.FirstOrDefault(x => x.Id == targetTerm.Id); if (targetTermFound != null) { path.Add(targetTermFound); return(path); } else { foreach (var item in rootTerm.ChildrenOntologyTerms) { //if (item.Id == targetTerm.Id) //{ //} var r = TracePath(item, targetTerm); if (r != null) { path.AddRange(r); return(path); } } } return(null); }
/// <summary> /// /// </summary> /// <param name="ontologyTerms"></param> /// <param name="idTerm"></param> /// <returns></returns> private OntologyTerm FindTerm(IEnumerable <OntologyTerm> ontologyTerms, int idTerm) { OntologyTerm termFound = null; termFound = ontologyTerms.FirstOrDefault(x => x.Id == idTerm); if (termFound != null) { return(termFound); } else { foreach (var term in ontologyTerms) { if (term.ChildrenOntologyTerms != null && term.ChildrenOntologyTerms.Any()) { termFound = FindTerm(term.ChildrenOntologyTerms, idTerm); if (termFound != null) { break; } } } return(termFound); } }
/// <summary> /// /// </summary> /// <param name="ontology"></param> /// <param name="idOntologyTerm"></param> /// <returns></returns> public OntologyTerm FindTerm(Ontology ontology, int idOntologyTerm) { OntologyTerm termFound = null; termFound = FindTerm(ontology.OntologyTerms, idOntologyTerm); return(termFound); }
/// <summary> /// /// </summary> /// <param name="ontologyTerm1"></param> /// <param name="ontologyTerm2"></param> /// <returns></returns> public IEnumerable <OntologyTerm> FindPathBetweenTerms(OntologyTerm ontologyTerm1, OntologyTerm ontologyTerm2) { var path = new List <OntologyTerm>(); var isTerm1Root = FindTerm(ontologyTerm1.ChildrenOntologyTerms, ontologyTerm2.Id) != null; if (isTerm1Root) { path = TracePath(ontologyTerm1, ontologyTerm2).ToList(); return(path); } var isTerm2Root = FindTerm(ontologyTerm2.ChildrenOntologyTerms, ontologyTerm1.Id) != null; if (isTerm2Root) { path = TracePath(ontologyTerm2, ontologyTerm1).ToList(); return(path); } return(null); }
private void CheckTranslations(string source, OntologyTerm target) { target.Uri.Should().Be(source); }