コード例 #1
0
        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();
        }
コード例 #2
0
ファイル: GDMTree.cs プロジェクト: chipsi/gedkeeper
        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);
        }
コード例 #3
0
        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());
            }
        }