private void GotMarriedBtnOnClick(object sender, EventArgs e) { if (PartnersComboBox.SelectedIndex == -1 || ( PartnersComboBox.SelectedIndex == 0 && !SourceMember.HadPartner(SinceDateTime) )) { PartnersComboBox.Focus(); return; } try { SourceMember.GotMarried( SinceDateTimePicker.Value, PartnersComboBox.SelectedIndex > 0 ? EnumerablePartners.ElementAt(PartnersComboBox.SelectedIndex - 1) : null ); UpdatePartnersListBox(); UpdateStatusesListBox(); UpdatePartnersComboBox(); UpdateButtons(); SinceDateTimePicker.Focus(); } catch (Exception ex) { if (new ValidationFailedDialog(ex.Message).ShowDialog() == DialogResult.OK) { PartnersComboBox.Focus(); } } }
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 UpdateButtons() { WithoutPartnerBtn.Enabled = SourceMember.HadPartner(SinceDateTime); GotUnmarriedBtn.Enabled = SourceMember.WasMarried(SinceDateTime); GotMarriedBtn.Enabled = !GotUnmarriedBtn.Enabled && ( EnumerablePartners.Any() || SourceMember.HadPartner(SinceDateTime) ); WithPartnerBtn.Enabled = !WithoutPartnerBtn.Enabled && EnumerablePartners.Any(); ClearPartnersHistoryBtn.Enabled = EnumerablePartnersHistory.Count() > 1; RemoveSelectedFullNameBtn.Enabled = FullNamesListBox.SelectedIndex > 0; }