コード例 #1
0
        private void fillAncestorTreePicker(FamilySearchFamilyTree myFT, TreeNodeCollection myTreeNodeCollection)
        {
            PersonParentsState parentsState;
            List<TreeNode> myParentsTreeNodes;
            TreeNode node;

            UserState userState = myFT.ReadCurrentUser();
            var startingID = userState.User.PersonId;
            var personState = (PersonState)myFT.ReadPersonById(startingID);

            HELPER_updateTextBox(txtStatus, "Collecting direct ancestors... " + personState.Person.DisplayExtension.Name);

            parentsState = personState.ReadParents();
            myParentsTreeNodes = new List<TreeNode>();
            foreach (var parentPerson in parentsState.Persons)
            {
                HELPER_updateTextBox(txtStatus, "Collecting direct ancestors... " + parentPerson.DisplayExtension.Name);
                TreeNode aNode = ancestryToTreeNode((PersonState)myFT.ReadPersonById(parentPerson.Id));
                myParentsTreeNodes.Add(aNode);
            }
            
            node = new TreeNode(personState.Person.DisplayExtension.Name + ": " + startingID, myParentsTreeNodes.ToArray());

            myTreeNodeCollection.Add(node);

            // Repeat for my Spouce(s)

            PersonSpousesState spousesState = personState.ReadSpouses();

            foreach (var spousePerson in spousesState.Persons)
            {
                var spouseId = spousePerson.Id;
                var spouseState = (PersonState)myFT.ReadPersonById(spouseId);

                HELPER_updateTextBox(txtStatus, "Collecting direct ancestors... " + spouseState.Person.DisplayExtension.Name);

                parentsState = spouseState.ReadParents();
                myParentsTreeNodes = new List<TreeNode>();
                foreach (var parentPerson in parentsState.Persons)
                {
                    HELPER_updateTextBox(txtStatus, "Collecting direct ancestors... " + parentPerson.DisplayExtension.Name);
                    TreeNode aNode = ancestryToTreeNode((PersonState)myFT.ReadPersonById(parentPerson.Id));
                    myParentsTreeNodes.Add(aNode);
                }

                node = new TreeNode(spousePerson.DisplayExtension.Name + ": " + spouseId, myParentsTreeNodes.ToArray());

                myTreeNodeCollection.Add(node);
            }

        }