コード例 #1
0
        private Tree BuildPartner(Node node, bool fartherChild)
        {
            if (Family.Members[node.Key].Refs.TryGetPartner(
                    out Member partner, Settings.At, Settings.CanBeDead
                    ))
            {
                if (fartherChild && Seen.Add(partner.Id))
                {
                    node.Partner = new Node(
                        partner.Id,
                        partner.FullName.Value(Settings.At)
                        )
                    {
                        PartnerReference = node.Key
                    };

                    BuildRecurrent(node.Partner);
                }
                else
                {
                    node.PartnerReference = partner.Id;
                }
            }

            return(this);
        }
コード例 #2
0
        private Tree BuildRecurrent(Node actual)
        {
            foreach (Member child in UseChildren(actual))
            {
                if (Seen.Add(child.Id))
                {
                    Node childNode = new Node(
                        child.Id, child.FullName.Value(Settings.At)
                        );
                    actual.AddChild(childNode);

                    if (Settings.CanBeFromFartherGeneration)
                    {
                        BuildRecurrent(childNode).BuildPartner(
                            childNode, actual.Key != Root.Key
                            );
                    }
                }
                else
                {
                    actual.AddChildReference(child.Id);
                }
            }

            return(this);
        }
コード例 #3
0
ファイル: Message.cs プロジェクト: Ravensbow/MessengerBlazor
 public void MadeSeenBy(FriendModel user)
 {
     Seen.Add(user);
 }