public override void Clear() { base.Clear(); fSex = GDMSex.svUnknown; for (int i = fChildToFamilyLinks.Count - 1; i >= 0; i--) { GDMFamilyRecord family = fChildToFamilyLinks[i].Family; family.DeleteChild(this); } fChildToFamilyLinks.Clear(); for (int i = fSpouseToFamilyLinks.Count - 1; i >= 0; i--) { GDMFamilyRecord family = fSpouseToFamilyLinks[i].Family; family.RemoveSpouse(this); } fSpouseToFamilyLinks.Clear(); for (int i = fGroups.Count - 1; i >= 0; i--) { GDMGroupRecord group = (GDMGroupRecord)fGroups[i].Value; group.RemoveMember(this); } fGroups.Clear(); fAliases.Clear(); fAssociations.Clear(); fPersonalNames.Clear(); }
public bool DeleteGroupRecord(GDMGroupRecord groupRec) { if (groupRec == null) { return(false); } for (int i = groupRec.Members.Count - 1; i >= 0; i--) { GDMIndividualRecord member = groupRec.Members[i].Individual; groupRec.RemoveMember(member); } DeleteRecord(groupRec); return(true); }
public void Test_Common() { using (GDMGroupRecord grpRec = new GDMGroupRecord(fContext.Tree)) { Assert.IsNotNull(grpRec); grpRec.ResetOwner(fContext.Tree); Assert.AreEqual(fContext.Tree, grpRec.GetTree()); } using (GDMGroupRecord groupRec = fContext.Tree.CreateGroup()) { GDMIndividualRecord member = fContext.Tree.XRefIndex_Find("I1") as GDMIndividualRecord; groupRec.GroupName = "Test Group"; Assert.AreEqual("Test Group", groupRec.GroupName); using (GDMGroupRecord group3 = fContext.Tree.CreateGroup()) { var matchParams = new MatchParams(); matchParams.NamesIndistinctThreshold = 100.0f; Assert.AreEqual(0.0f, groupRec.IsMatch(null, matchParams)); group3.GroupName = "Test group"; Assert.AreEqual(100.0f, groupRec.IsMatch(group3, matchParams)); group3.GroupName = "test"; Assert.AreEqual(0.0f, groupRec.IsMatch(group3, matchParams)); } bool res = groupRec.AddMember(null); Assert.IsFalse(res); res = groupRec.RemoveMember(null); Assert.IsFalse(res); Assert.AreEqual(-1, groupRec.IndexOfMember(null)); groupRec.AddMember(member); Assert.AreEqual(0, groupRec.IndexOfMember(member)); using (var group2 = fContext.Tree.CreateGroup()) { Assert.Throws(typeof(ArgumentException), () => { group2.Assign(null); }); group2.Assign(groupRec); string buf = TestUtils.GetTagStreamText(group2, 0); Assert.AreEqual("0 @G4@ _GROUP\r\n" + "1 NAME Test Group\r\n" + "1 _MEMBER @I1@\r\n", buf); } groupRec.RemoveMember(member); Assert.AreEqual(-1, groupRec.IndexOfMember(member)); groupRec.ReplaceXRefs(new GDMXRefReplacer()); Assert.IsFalse(groupRec.IsEmpty()); groupRec.Clear(); Assert.IsTrue(groupRec.IsEmpty()); } }