void ReatoModificatoHandler(object sender, DatiReatoEventArgs dati_evento) { // Si rimuove dall'elenco l'oggetto corrispondente al reato da modificare nuova_iscrizione_data.Reati_list.Remove((Model.reato) reatoDataGrid.SelectedItem); // Si inserisce nell'elenco il reato modificato nuova_iscrizione_data.Reati_list.Add(dati_evento.Nuovo_reato); // Si aggiornano le associazioni tra il reato e le persone foreach (Model.persona p in nuova_iscrizione_data.Persone_indagate_list) { nuova_iscrizione_data.Persone_reati_ass.RemoveAll(r => r.reato.NomenIuris == dati_evento.Reato_originale.NomenIuris && r.persona.Equals(p)); } foreach (Model.persona p in dati_evento.Persone_indagate_associate) { Model.PersonaReato ass = new Model.PersonaReato(); ass.persona = p; ass.reato = dati_evento.Nuovo_reato; nuova_iscrizione_data.Persone_reati_ass.Add(ass); } foreach (Model.persona p in nuova_iscrizione_data.Persone_offese_list) { nuova_iscrizione_data.Persone_reati_ass.RemoveAll(r => r.reato.NomenIuris == dati_evento.Reato_originale.NomenIuris && r.persona.Equals(p)); } foreach (Model.persona p in dati_evento.Persone_offese_associate) { Model.PersonaReato ass = new Model.PersonaReato(); ass.persona = p; ass.reato = dati_evento.Nuovo_reato; nuova_iscrizione_data.Persone_reati_ass.Add(ass); } // Si aggiorna il data grid contenete l'elenco dei nuovi indagati reatoDataGrid.SelectedItem = dati_evento.Nuovo_reato; reatoDataGrid.Items.Refresh(); }
private void InserisciButtonClick(object sender, RoutedEventArgs e) { // Si controlla se tutti i dati obbligatori di un reato sono presenti if (!reato_binding_source.IsValid) { MessageBox.Show("Uno o più dati del reato sono mancanti."); return; } // Si impostano alcuni campi del reato, a seconda delle selezioni dell'utente Model.tavola_reati reato_selezionato = (Model.tavola_reati)descrizione_reatoComboBox.SelectedItem; reato_binding_source.NomenIuris = reato_selezionato.NomenIuris; reato_binding_source.Codice = reato_selezionato.Codice; reato_binding_source.Descrizione = reato_selezionato.Descrizione; // Se il nuovo reato ha un codice già presente nell'elenco dei nuovi reati // si mostra un messaggio di errore Model.reato find_result_reato; find_result_reato = nuova_iscrizione_data.Reati_list.Find(item => item.NomenIuris == reato_binding_source.NomenIuris); if (find_result_reato != null) { if (modalità_modifica == false) { MessageBox.Show("Il reato con Nomen Iuris \"" + reato_binding_source.NomenIuris + "\" è già stato inserito."); return; } else if (find_result_reato.NomenIuris != reato_originale.NomenIuris) { MessageBox.Show("Il reato con Nomen Iuris \"" + reato_binding_source.NomenIuris + "\" è già stato inserito."); return; } } DatiReatoEventArgs event_data; if (modalità_modifica) event_data = new DatiReatoEventArgs(reato_binding_source, reato_originale); else event_data = new DatiReatoEventArgs(reato_binding_source); // Si aggiornano le associazioni tra i reati e le persone foreach (ReatoIndagati ri in indagati_binding_source) { if (ri.IsSelected == true) { event_data.Persone_indagate_associate.Add(ri.PersonaIndagata); } } foreach (ReatoPO rp in po_binding_source) { if (rp.IsSelected == true) { event_data.Persone_offese_associate.Add(rp.PersonaOffesa); } } // Se si è in modalità modifica si invoca l'evento reato modificato, // che verrà gestito dalla pagina "Inserisci reati" // Altrimenti si invoca l'evento reato creato, che verrà gestito // sempre dalla pagina "Inserisci reati" if (modalità_modifica) On_evento_reato_modificato(event_data); else On_evento_reato_creato(event_data); Close(); }
void ReatoCreatoHandler(object sender, DatiReatoEventArgs dati_evento) { // Si aggiunge il reato nelle informazioni sulla nuova iscrizione nuova_iscrizione_data.Reati_list.Add(dati_evento.Nuovo_reato); // Si creano le associazioni tra il reato e le persone associate foreach (Model.persona p in dati_evento.Persone_indagate_associate) { Model.PersonaReato ass = new Model.PersonaReato(); ass.persona = p; ass.reato = dati_evento.Nuovo_reato; nuova_iscrizione_data.Persone_reati_ass.Add(ass); } foreach (Model.persona p in dati_evento.Persone_offese_associate) { Model.PersonaReato ass = new Model.PersonaReato(); ass.persona = p; ass.reato = dati_evento.Nuovo_reato; nuova_iscrizione_data.Persone_reati_ass.Add(ass); } // Si aggiorna il data grid contenete l'elenco dei nuovi indagati reatoDataGrid.SelectedItem = dati_evento.Nuovo_reato; reatoDataGrid.Items.Refresh(); }
protected virtual void On_evento_reato_modificato(DatiReatoEventArgs e) { if (evento_reato_modificato != null) evento_reato_modificato(this, e); }