public bool Equals(TermNode tn) { if (tn == null) { return(false); } return(GetContent().Equals(tn.GetContent())); }
private void SetDistinctPerRiskNodes() { for (int i = 0; i < OriginalPerRiskNodes.Count(); i++) { TermNode TermNodeI = OriginalPerRiskNodes[i]; Subject sI = TermNodeI.GetContent().GetSubject(); #region Compare to original per risk nodes for (int j = i + 1; j < OriginalPerRiskNodes.Count(); j++) { TermNode TermNodeJ = OriginalPerRiskNodes[j]; Subject sJ = TermNodeJ.GetContent().GetSubject(); if (OriginalSubjectRelationshipMatrix[sI.ID, sJ.ID] == SubjectComparisonOutcome.Equal) { TermNodeJ.GetContent().UnionWith(TermNodeI.GetContent()); DistinctPerRiskNodes.Remove(TermNodeI); } else if (CompareSubjectDimensions(sI.CausesOfLoss, sJ.CausesOfLoss) == SubjectComparisonOutcome.Equal && CompareSubjectDimensions(sI.ResolvedExposureTypes, sJ.ResolvedExposureTypes) == SubjectComparisonOutcome.Equal) { if (OriginalSubjectRelationshipMatrix[sI.ID, sJ.ID] == SubjectComparisonOutcome.Child) { //foreach (RITE rite in s2.Schedule.ScheduleList) //{ // RiteDedsAddition[s1.ID].Add(rite, tNode2.Deductibles); // RiteLimitsAddition[s1.ID].Add(rite, tNode2.Limits); //} DistinctPerRiskNodes.Remove(TermNodeJ); } else if (OriginalSubjectRelationshipMatrix[sI.ID, sJ.ID] == SubjectComparisonOutcome.Parent) { //foreach (RITE rite in s1.Schedule.ScheduleList) //{ // RiteDedsAddition[s2.ID].Add(rite, tNode1.Deductibles); // RiteLimitsAddition[s2.ID].Add(rite, tNode1.Limits); //} DistinctPerRiskNodes.Remove(TermNodeI); } else if (OriginalSubjectRelationshipMatrix[sI.ID, sJ.ID] == SubjectComparisonOutcome.Overlap_Child || OriginalSubjectRelationshipMatrix[sI.ID, sJ.ID] == SubjectComparisonOutcome.Overlap_Parent) { } else { ; // TODO : ?????? } } } #endregion Compare to original per risk nodes #region Get RITE singleton original non per risk nodes List <TermNode> OriginalSingletonNonPerRiskNodes = new List <TermNode>(); foreach (TermNode OriginalNonPerRiskNode in OriginalNonPerRiskNodes) { Subject subject = OriginalNonPerRiskNode.GetContent().GetSubject(); if (subject.RITEIds.Count == 1) { OriginalSingletonNonPerRiskNodes.Add(OriginalNonPerRiskNode); } } #endregion #region Compare to singleton non per risk nodes foreach (TermNode OriginalSingletonNonPerRiskNode in OriginalSingletonNonPerRiskNodes) { Subject OriginalSingletonNonPerRiskNodesSubject = OriginalSingletonNonPerRiskNode.GetContent().GetSubject(); if (CompareSubjectDimensions(sI.CausesOfLoss, OriginalSingletonNonPerRiskNodesSubject.CausesOfLoss) == SubjectComparisonOutcome.Equal && CompareSubjectDimensions(sI.ResolvedExposureTypes, OriginalSingletonNonPerRiskNodesSubject.ResolvedExposureTypes) == SubjectComparisonOutcome.Equal) { if (sI.RITEIds.Contains(OriginalSingletonNonPerRiskNodesSubject.RITEIds.First())) { OriginalNonPerRiskNodes.Remove(OriginalSingletonNonPerRiskNode); FinalNodes.Remove(OriginalSingletonNonPerRiskNode); //RiteDedsAddition[s1.ID].Add(s3.Schedule.ScheduleList.First(), tNode3.Deductibles); //RiteLimitsAddition[s1.ID].Add(s3.Schedule.ScheduleList.First(), tNode3.Limits); } } } #endregion Compare to singleton non per risk nodes } }
public TermNode(TermNode TermNode) : this(TermNode.GetContent()) { IsItMultiBuildingPerRisk = TermNode.IsMultiBuildingPerRisk(); }