Ejemplo n.º 1
0
        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 OkButtonClick(object sender, RoutedEventArgs e)
        {
            if (modalità_modifica == false)
                db_connection.persona.Add(p_binding_source);

            // Si controlla se tutti i dati obbligatori di una persona siano presenti
            if (!p_binding_source.IsValid)
            {
                MessageBox.Show("Uno o più dati anagrafici della persona sono mancanti.");
                return;
            }

            if(reati_binding_source.Find(item => item.IsSelected == true) == null)
            {
                {
                    MessageBox.Show("Attenzione, non è stato associato alcun reato a carico dell'indagato.");
                    return;
                }
            }

            if (nomeDif1TextBox.Text != null && nomeDif1TextBox.Text != "" && i_binding_source.difensore == null)
            {
                if (difensore1.persona.IsValid)
                {
                    i_binding_source.difensore = difensore1;
                }
                else
                {
                    MessageBox.Show("Uno o più dati anagrafici del primo difensore sono mancanti.");
                    return;
                }
            }

            // Si impostano alcuni campi della persona, a seconda delle selezioni dell'utente
            if (sessoMRadioButton.IsChecked == true) p_binding_source.Sesso = "M";
            else p_binding_source.Sesso = "F";
            i_binding_source.Stato = statoComboBox.Text;
            i_binding_source.PrecedentiPenali = precedenti_penaliComboBox.Text;

            DatiIndagatoEventArgs event_data;
            if (modalità_modifica) event_data = new DatiIndagatoEventArgs(p_binding_source, p_originale);
            else event_data = new DatiIndagatoEventArgs(p_binding_source);

            p_binding_source.PersonaReato.Clear();
            foreach (PersonaReati pr in reati_binding_source)
            {
                if (pr.IsSelected == true)
                {
                    Model.PersonaReato nuovo_pr = new Model.PersonaReato();
                    nuovo_pr.scheda = scheda;
                    nuovo_pr.persona = p_binding_source;
                    nuovo_pr.reato = pr.Reato;
                    p_binding_source.PersonaReato.Add(nuovo_pr);
                }
            }
            db_connection.SaveChanges();

            // Se si è in modalità modifica si invoca l'evento persona modificata,
            // Altrimenti si invoca l'evento persona creata
            if (modalità_modifica)
                On_evento_p_modificata(event_data);
            else
                On_evento_p_creata(event_data);
            Close();
        }
Ejemplo n.º 3
0
        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();
        }