Пример #1
0
        private void UpdateChooseChildren(bool?selectAll = null)
        {
            ChooseChildren.Items.Clear();

            EnumerableOwnChildren = SourceFamily.GetEnumerableMembers().Where(m => m.Refs.ParentId == SourceMember.Id);
            EnumerableChildren    = SourceFamily.GetEnumerableMembers().Where(
                m => m.Id != SourceMember.Id &&
                m.BirthDate >= SourceMember.BirthDate &&
                m.Refs.Parent == null &&
                !SourceMember.Refs.Partner.Changes.Values.Any(p => p != null && p.Id == m.Id)
                );

            if (EnumerableChildren.Any() || EnumerableOwnChildren.Any())
            {
                foreach (Member child in EnumerableOwnChildren)
                {
                    ChooseChildren.Items.Add(child, selectAll ?? true);
                }

                foreach (Member child in EnumerableChildren)
                {
                    ChooseChildren.Items.Add(child, selectAll ?? false);
                }
            }
            else
            {
                ChooseChildren.Items.Add("No available members. Add children of this member at first.", CheckState.Indeterminate);
            }
        }
Пример #2
0
        private void UpdatePartnersComboBox()
        {
            EnumerablePartners = SourceFamily.GetEnumerableMembers().Where(
                m => m.Id != SourceMember.Id &&
                m.BirthDate <= SinceDateTime &&
                (m.DeathDate == null || SinceDateTime <= m.DeathDate) &&
                !m.Refs.PartnerId.Value(SinceDateTime).HasValue
                ).OrderBy(m => m.BirthDate - SourceMember.BirthDate);

            PartnersComboBox.Items.Clear();

            if (SourceMember.HadPartner(SinceDateTime))
            {
                PartnersComboBox.Items.Add("The partner that time");
            }
            else
            {
                PartnersComboBox.Items.Add("No partner selected");
            }

            PartnersComboBox.SelectedIndex = 0;

            foreach (Member member in EnumerablePartners)
            {
                PartnersComboBox.Items.Add(member);
            }
        }
Пример #3
0
        private void MembersListBoxOnSelected(object sender, EventArgs e)
        {
            UsingSelectedMember(m =>
            {
                Member selectedMember = EnumerableMembers.ElementAt(MembersListBox.SelectedIndex);
                if (m.IsBorn(UseSettings.At, UseSettings.CanBeDead))
                {
                    BornValue.Text = "Yes";
                    DescendantsCountValue.Enabled = true;
                    AncestorsCountValue.Enabled   = true;
                    ChildrenCountValue.Enabled    = true;
                    SiblingsCountValue.Enabled    = true;

                    DescendantsCountValue.Text = m.Refs.GetDescendants(UseSettings).Count().ToString();
                    AncestorsCountValue.Text   = m.Refs.GetAncestors(UseSettings).Count().ToString();
                    ChildrenCountValue.Text    = m.Refs.Children.Count().ToString();
                    SiblingsCountValue.Text    = m.Refs.GetSiblings(UseSettings).Count().ToString();
                }
                else
                {
                    BornValue.Text = "No";
                    DescendantsCountValue.Enabled = false;
                    AncestorsCountValue.Enabled   = false;
                    ChildrenCountValue.Enabled    = false;

                    DescendantsCountValue.Text = "-";
                    AncestorsCountValue.Text   = "-";
                    ChildrenCountValue.Text    = "-";
                    SiblingsCountValue.Text    = "-";
                }

                RemoveSelectedBtn.Enabled = SourceFamily.CanBeRemoved(selectedMember);
                EditSelectedBtn.Enabled   = true;
            });
        }
Пример #4
0
 private void RemoveSelectedMember()
 {
     UsingSelectedMember(m =>
     {
         if (SourceFamily.CanBeRemoved(m) && new DestructiveConfirmDialog().ShowDialog() == DialogResult.OK)
         {
             SourceFamily.RemoveMember(m);
             UnsavedChanges = true;
             UpdateUI();
             UpdateUIMembersListBox();
         }
     });
 }
Пример #5
0
        private void MembersMenuItemAddOnClick(object sender, EventArgs e)
        {
            MemberAddDialog dialog = new MemberAddDialog(SourceFamily);

            if (dialog.ShowDialog() == DialogResult.OK)
            {
                SourceFamily.AddMember(dialog.OutMember);
                UnsavedChanges = true;
                UpdateUI();
                UpdateUIMembersListBox();
            }
            ;
        }
Пример #6
0
        private void EditSelectedMember()
        {
            UsingSelectedMember(m =>
            {
                MemberEditDialog editDialog = new MemberEditDialog(
                    SourceFamily, m
                    );

                if (editDialog.ShowDialog() == DialogResult.OK)
                {
                    UnsavedChanges            = true;
                    RemoveSelectedBtn.Enabled = SourceFamily.CanBeRemoved(m);
                    UpdateUI();
                }
            });
        }
Пример #7
0
        private void UpdateUIMembersListBox()
        {
            EnumerableMembers = SourceFamily.GetEnumerableMembers();

            MembersListBox.Items.Clear();

            if (EnumerableMembers.Any())
            {
                foreach (Member member in EnumerableMembers)
                {
                    MembersListBox.Items.Add(member);
                }
            }
            else
            {
                MembersListBox.Items.Add("No available members.");
            }

            EditSelectedBtn.Enabled   = false;
            RemoveSelectedBtn.Enabled = false;
            TotalMembersValue.Text    = EnumerableMembers.Count().ToString();
        }