// Evènement de MouseDoubleClick pour la DataGrid DGV_InterventionList private void DGV_InterventionList_MouseDoubleClick(object sender, MouseButtonEventArgs e) { try { if (tech != null) { // Déclaration des variables locales Class.C_Intervention interv = null; DataRowView dr; // Récupération de la ligne de la DataGrid dr = (DataRowView)this.DGV_InterventionList.SelectedItem; // Vérification que c'est le bon technicien qui demande la modification if (dr.Row.ItemArray[1].ToString() == tech.Username) { // Recherche dans la liste des intervention foreach (Class.C_Intervention i in ticket.InterventionList) { // Vérification si l'intervention correspond if (i.TechnicalUsername == dr.Row.ItemArray[1].ToString() && i.DateBeg.ToString() == dr.Row.ItemArray[2].ToString() && i.DateEnd.ToString() == dr.Row.ItemArray[3].ToString()) { // Récupère l'intervention interv = i; // Casse la boucle foreach break; } } // Préparation et affichage de la fenêtre WPF_ModifInterv wpf_MI = new WPF_ModifInterv(ticket, interv, tech); wpf_MI.ShowDialog(); // Vide la table dtDGV.Rows.Clear(); // Mise en place des informations dans la DataGrid FillDataGrid(); } else { // Affichage du message d'erreur MessageBox.Show("Vous ne pouvez pas modifier l'intervention d'un autre technicien"); } } } catch (Exception ex) { // Affichage du message d'erreur MessageBox.Show("Le programme a rencontré une ou plusieur(s) erreur(s) : \n\n" + ex.Message); } }
// Constructeur de la classe public WPF_ModifInterv(Class.C_Ticket ticket, Class.C_Intervention interv, Class.C_Technical tech) { // Initialisation des composants InitializeComponent(); // Récupération des informaitons this.ticket = ticket; this.interv = interv; this.tech = tech; // Remise à zéro du fomulaire RAZ(); // Mise en place des informations this.TXT_HeureBeg.Text = interv.DateBeg.Hour.ToString(); this.TXT_HeureFin.Text = interv.DateEnd.Hour.ToString(); this.TXT_MinuteBeg.Text = interv.DateBeg.Minute.ToString(); this.TXT_MinuteFin.Text = interv.DateEnd.Minute.ToString(); this.TXT_Note.Text = interv.Note; this.TXT_Object.Text = interv.Label; this.TXT_RMANumber.Text = Class.C_Database.SelectIDTicket(ticket).ToString(); this.DTP_DateBeg.SelectedDate = interv.DateBeg.Date; this.DTP_DateFin.SelectedDate = interv.DateEnd.Date; }
// Evènement Click du bouton BTN_Accept private void BTN_Accept_Click(object sender, RoutedEventArgs e) { try { // Déclaration des variables locales Class.C_Intervention oldInterv; DateTime tmpDate, dateBeg, dateEnd; // Récupération de l'ancienne intervention oldInterv = new Class.C_Intervention(interv.DateBeg, interv.DateEnd, interv.Label, interv.Note, Class.C_Database.SelectTechnical(interv.TechnicalUsername)); // Retire l'intervention de la liste ticket.RemoveIntervFromList(oldInterv); // Préparation des dates tmpDate = (DateTime)this.DTP_DateBeg.SelectedDate; dateBeg = new DateTime(tmpDate.Year, tmpDate.Month, tmpDate.Day, int.Parse(this.TXT_HeureBeg.Text), int.Parse(this.TXT_MinuteBeg.Text), 0); tmpDate = (DateTime)this.DTP_DateFin.SelectedDate; dateEnd = new DateTime(tmpDate.Year, tmpDate.Month, tmpDate.Day, int.Parse(this.TXT_HeureFin.Text), int.Parse(this.TXT_MinuteFin.Text), 0); // Vérification que la date de fin est plus grande que la date de début if (dateBeg < dateEnd) { // Modificatoin de l'ancienne intervention interv.ModifyIntervention(dateBeg, dateEnd, this.TXT_Object.Text, this.TXT_Note.Text); // Essai d'ajout de cette intervention à la liste if (ticket.AddIntervInList(interv)) { // Modification en base de données Class.C_Database.UpdateIntervention(interv, ticket); // Remise à zéro du formulaire RAZ(); // Fermeture du formulaire this.Close(); } else { // Remise de l'ancienne intervention ticket.AddIntervInList(oldInterv); // Affichage du message d'erreur MessageBox.Show("L'intervention que vous souhaitez entrer entre en conflit avec une autre que vous avez effectué."); } } else { // Remise de l'ancienne intervention ticket.AddIntervInList(oldInterv); // Affichage du message d'erreur MessageBox.Show("La date et heure de fin doit être plus grande la date et heure de début"); } } catch (Exception ex) { // Affichage du message d'erreur MessageBox.Show("Le programme a rencontré une ou plusieur(s) erreur(s) : \n\n" + ex.Message); } }