Exemple #1
0
        public bool Equals(TermNode tn)
        {
            if (tn == null)
            {
                return(false);
            }

            return(GetContent().Equals(tn.GetContent()));
        }
Exemple #2
0
        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
            }
        }
Exemple #3
0
 public TermNode(TermNode TermNode)
     : this(TermNode.GetContent())
 {
     IsItMultiBuildingPerRisk = TermNode.IsMultiBuildingPerRisk();
 }