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); } }
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); } }
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; }); }
private void RemoveSelectedMember() { UsingSelectedMember(m => { if (SourceFamily.CanBeRemoved(m) && new DestructiveConfirmDialog().ShowDialog() == DialogResult.OK) { SourceFamily.RemoveMember(m); UnsavedChanges = true; UpdateUI(); UpdateUIMembersListBox(); } }); }
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(); } ; }
private void EditSelectedMember() { UsingSelectedMember(m => { MemberEditDialog editDialog = new MemberEditDialog( SourceFamily, m ); if (editDialog.ShowDialog() == DialogResult.OK) { UnsavedChanges = true; RemoveSelectedBtn.Enabled = SourceFamily.CanBeRemoved(m); UpdateUI(); } }); }
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(); }