private void RadioButton_Click(object sender, EventArgs e) { SpesaForm.ErrorProvider.Clear(); try { Spesa.Pagante = (SpesaForm.PaganteComboBox.SelectedItem as Utente); string nomeMetodo = SpesaForm.RadioPanel.Controls.OfType <RadioButton>().FirstOrDefault(n => n.Checked).Tag.ToString(); Spesa.MetodoDivisione = MetodoDiDivisioneFactory.GetMetodoDiDivisione(nomeMetodo); Spesa.Importo = SpesaForm.NumericUpDown.Value; PartiForm partiForm = new PartiForm(); new PartiFormPresenter(partiForm, Spesa, nomeMetodo); if (partiForm.ShowDialog() == System.Windows.Forms.DialogResult.Cancel) { SpesaForm.EquoRadioButton.Checked = true; nomeMetodo = SpesaForm.RadioPanel.Controls.OfType <RadioButton>().FirstOrDefault(n => n.Checked).Tag.ToString(); Spesa.MetodoDivisione = MetodoDiDivisioneFactory.GetMetodoDiDivisione(nomeMetodo); } } catch (ArgumentException ae) { SpesaForm.ErrorProvider.SetError(SpesaForm.NumericUpDown, ae.Message.Substring(0, ae.Message.IndexOf('\n'))); SpesaForm.EquoRadioButton.Checked = true; string nomeMetodo = SpesaForm.RadioPanel.Controls.OfType <RadioButton>().FirstOrDefault(n => n.Checked).Tag.ToString(); Spesa.MetodoDivisione = MetodoDiDivisioneFactory.GetMetodoDiDivisione(nomeMetodo); } }
private void ConfermaButton_Click(object sender, EventArgs e) { SpesaForm.ErrorProvider.Clear(); try { Spesa.Descrizione = SpesaForm.DescrizioneTextBox.Text; Spesa.Importo = SpesaForm.NumericUpDown.Value; Spesa.Pagante = (Utente)SpesaForm.PaganteComboBox.SelectedItem; string nomeMetodo = SpesaForm.RadioPanel.Controls.OfType <RadioButton>().FirstOrDefault(n => n.Checked).Tag.ToString(); Spesa.MetodoDivisione = MetodoDiDivisioneFactory.GetMetodoDiDivisione(nomeMetodo); Spesa.Data = SpesaForm.DateTimePicker.Value; if (DaModificare != null) { DaModificare.SpeseGruppo.RimuoviSpesa(DaModificare); } Spesa.SpeseGruppo.AggiungiSpesa(Spesa); Observer.AggiornaUI(); SpesaForm.DialogResult = DialogResult.OK; } catch (ArgumentException ae) { Control control; switch (ae.ParamName) { case "descrizione": control = SpesaForm.DescrizioneTextBox; break; case "importo": control = SpesaForm.NumericUpDown; break; case "pagante": control = SpesaForm.PaganteComboBox; break; case "data": control = SpesaForm.DateTimePicker; break; default: control = SpesaForm.ConfermaButton; SpesaForm.ErrorProvider.SetIconAlignment(control, ErrorIconAlignment.MiddleLeft); break; } SpesaForm.ErrorProvider.SetError(control, string.IsNullOrEmpty(ae.ParamName) ? ae.Message : ae.Message.Substring(0, ae.Message.IndexOf('\n'))); } }