/// <summary> /// Ouvre la réservation séléctionnée à l'aide d'une nouvelle fenêtre /// </summary> public Reservation_Salle Open() { if (this._DataGridMain.SelectedItem != null) { if (this._DataGridMain.SelectedItems.Count == 1) { //Affichage du message "modification en cours" ((App)App.Current)._theMainWindow.progressBarMainWindow.IsIndeterminate = true; ((App)App.Current)._theMainWindow.textBlockMainWindow.Text = "Modification d'une réservation en cours ..."; //Création de la fenêtre ReservationSalleWindow reservationSalle = new ReservationSalleWindow(); //Initialisation du Datacontext en Reservation_Salle et association à la Reservation_Salle sélectionné reservationSalle.DataContext = new Reservation_Salle(); reservationSalle.DataContext = (Reservation_Salle)this._DataGridMain.SelectedItem; //booléen nullable vrai ou faux ou null bool? dialogResult = reservationSalle.ShowDialog(); if (dialogResult.HasValue && dialogResult.Value == true) { //Si j'appuie sur le bouton Ok, je renvoi l'objet Reservation_Salle dans le datacontext de la fenêtre return (Reservation_Salle)reservationSalle.DataContext; } else { //Je récupère les anciennes données de la base sur les modifications effectuées ((App)App.Current).mySitaffEntities.Refresh(System.Data.Objects.RefreshMode.StoreWins, (Reservation_Salle)(this._DataGridMain.SelectedItem)); //La commande étant un objet "critique" au niveau des associations, je refresh l'edmx et je relance le filtrage s'il y en avait un afin d'avoir les mêmes infos (invisible pour l'user) ((App)App.Current).refreshEDMXSansVidage(); this.filtrage(); //Si j'appuie sur le bouton annuler, je préviens que j'annule ma modification ((App)App.Current)._theMainWindow.progressBarMainWindow.IsIndeterminate = false; this.recalculMax(); ((App)App.Current)._theMainWindow.textBlockMainWindow.Text = "Modification d'une réservation annulé : " + this.listReservationSalle.Count() + " / " + this.max; return null; } } else { MessageBox.Show("Vous ne devez sélectionner qu'une réservation.", "Attention", MessageBoxButton.OK, MessageBoxImage.Exclamation); return null; } } else { MessageBox.Show("Vous devez sélectionner une réservation.", "Attention", MessageBoxButton.OK, MessageBoxImage.Exclamation); return null; } }
/// <summary> /// duplique une Commande_Fournisseur à la liste à l'aide d'une nouvelle fenêtre /// </summary> public Reservation_Salle Duplicate() { if (this._DataGridMain.SelectedItem != null) { if (this._DataGridMain.SelectedItems.Count == 1) { //Affichage du message "ajout en cours" ((App)App.Current)._theMainWindow.progressBarMainWindow.IsIndeterminate = true; ((App)App.Current)._theMainWindow.changementTexteStatusBar("Dupliquer une réservation en cours ..."); //Création de la fenêtre ReservationSalleWindow reservationSalleWindow = new ReservationSalleWindow(); //Duplication de la commande sélectionnée Reservation_Salle tmp = new Reservation_Salle(); tmp = duplicateReservationSalle((Reservation_Salle)this._DataGridMain.SelectedItem); //Association de l'élement dupliqué au datacontext de la fenêtre reservationSalleWindow.DataContext = tmp; //booléen nullable vrai ou faux ou null bool? dialogResult = reservationSalleWindow.ShowDialog(); if (dialogResult.HasValue && dialogResult.Value == true) { return (Reservation_Salle)reservationSalleWindow.DataContext; } else { try { //On détache tous les élements liés à la réservation Reservation_SalleContact_Client_Invite ObservableCollection<Reservation_SalleContact_Client_Invite> toRemove = new ObservableCollection<Reservation_SalleContact_Client_Invite>(); foreach (Reservation_SalleContact_Client_Invite item in ((Reservation_Salle)reservationSalleWindow.DataContext).Reservation_SalleContact_Client_Invite) { toRemove.Add(item); } foreach (Reservation_SalleContact_Client_Invite item in toRemove) { ((App)App.Current).mySitaffEntities.Detach(item); } //On détache tous les élements liés à la réservation Reservation_SalleContact_Fournisseur_Invite ObservableCollection<Reservation_SalleContact_Fournisseur_Invite> toRemove1 = new ObservableCollection<Reservation_SalleContact_Fournisseur_Invite>(); foreach (Reservation_SalleContact_Fournisseur_Invite item in ((Reservation_Salle)reservationSalleWindow.DataContext).Reservation_SalleContact_Fournisseur_Invite) { toRemove1.Add(item); } foreach (Reservation_SalleContact_Fournisseur_Invite item in toRemove1) { ((App)App.Current).mySitaffEntities.Detach(item); } //On détache tout les éléments liés à la réservation Reservation_SalleSalarie_Invite ObservableCollection<Reservation_SalleSalarie_Invite> toRemove2 = new ObservableCollection<Reservation_SalleSalarie_Invite>(); foreach (Reservation_SalleSalarie_Invite item in ((Reservation_Salle)reservationSalleWindow.DataContext).Reservation_SalleSalarie_Invite) { toRemove2.Add(item); } foreach (Reservation_SalleSalarie_Invite item in toRemove2) { ((App)App.Current).mySitaffEntities.Detach(item); } //On détache tout les éléments liés à la réservation Reservation_SalleBesoin_Reservation_Salle ObservableCollection<Reservation_SalleBesoin_Reservation_Salle> toRemove3 = new ObservableCollection<Reservation_SalleBesoin_Reservation_Salle>(); foreach (Reservation_SalleBesoin_Reservation_Salle item in ((Reservation_Salle)reservationSalleWindow.DataContext).Reservation_SalleBesoin_Reservation_Salle) { toRemove3.Add(item); } foreach (Reservation_SalleBesoin_Reservation_Salle item in toRemove3) { ((App)App.Current).mySitaffEntities.Detach(item); } //On détache la réservation ((App)App.Current).mySitaffEntities.Detach((Reservation_Salle)reservationSalleWindow.DataContext); } catch (Exception) { } //Si j'appuie sur le bouton annuler, je préviens que j'annule mon ajout ((App)App.Current)._theMainWindow.progressBarMainWindow.IsIndeterminate = false; this.recalculMax(); ((App)App.Current)._theMainWindow.textBlockMainWindow.Text = "Ajout d'une réservation annulé : " + this.listReservationSalle.Count() + " / " + this.max; return null; } } else { MessageBox.Show("Vous ne devez sélectionner qu'une seule réservation.", "Attention", MessageBoxButton.OK, MessageBoxImage.Exclamation); return null; } } else { MessageBox.Show("Vous devez sélectionner une réservation.", "Attention", MessageBoxButton.OK, MessageBoxImage.Exclamation); return null; } }
/// <summary> /// Ouvre la réservation séléctionnée en lecture seule à l'aide d'une nouvelle fenêtre /// </summary> public Reservation_Salle Look(Reservation_Salle reservationSalle) { if (this._DataGridMain.SelectedItem != null || reservationSalle != null) { if (this._DataGridMain.SelectedItems.Count == 1 || reservationSalle != null) { //Affichage du message "affichage en cours" ((App)App.Current)._theMainWindow.progressBarMainWindow.IsIndeterminate = true; ((App)App.Current)._theMainWindow.textBlockMainWindow.Text = "Affichage d'une réservation en cours ..."; //Création de la fenêtre ReservationSalleWindow creationreservationWindow = new ReservationSalleWindow(); //Initialisation du Datacontext en Reservation_Salle et association à la Reservation_Salle sélectionnée creationreservationWindow.DataContext = new Reservation_Salle(); if (reservationSalle != null) { creationreservationWindow.DataContext = reservationSalle; } else { creationreservationWindow.DataContext = (Reservation_Salle)this._DataGridMain.SelectedItem; } //Je positionne la lecture seule sur la fenêtre creationreservationWindow.Lecture_Seule(); //J'affiche la fenêtre bool? dialogResult = creationreservationWindow.ShowDialog(); //Affichage du message "affichage en cours" ((App)App.Current)._theMainWindow.progressBarMainWindow.IsIndeterminate = false; ((App)App.Current)._theMainWindow.textBlockMainWindow.Text = "Affichage d'une réservation terminé : " + this.listReservationSalle.Count() + " / " + this.max; //Renvoi null return null; } else { MessageBox.Show("Vous ne devez sélectionner qu'une seule réservation.", "Attention", MessageBoxButton.OK, MessageBoxImage.Exclamation); return null; } } else { MessageBox.Show("Vous devez sélectionner une réservation.", "Attention", MessageBoxButton.OK, MessageBoxImage.Exclamation); return null; } }
/// <summary> /// Ajoute une nouvelle Réservation à la liste à l'aide d'une nouvelle fenêtre /// </summary> public Reservation_Salle Add() { //Affichage du message "ajout en cours" ((App)App.Current)._theMainWindow.progressBarMainWindow.IsIndeterminate = true; ((App)App.Current)._theMainWindow.textBlockMainWindow.Text = "Ajout d'une résevation en cours ..."; //Initialisation de la fenêtre ReservationSalleWindow creationreservationSalle = new ReservationSalleWindow(); //Création de l'objet temporaire Reservation_Salle tmp = new Reservation_Salle(); tmp.Salarie1 = ((App)App.Current)._connectedUser.Salarie_Interne1.Salarie; tmp.Entreprise_Mere1 = ((App)App.Current)._connectedUser.Salarie_Interne1.Entreprise_Mere1; tmp.Heure_Debut = "xx:xx"; tmp.Heure_Fin = "xx:xx"; creationreservationSalle._textBoxHeureDebut.Foreground = Brushes.Gray; creationreservationSalle._textBoxHeureFin.Foreground = Brushes.Gray; //Mise de l'objet temporaire dans le datacontext creationreservationSalle.DataContext = tmp; //booléen nullable vrai ou faux ou null bool? dialogResult = creationreservationSalle.ShowDialog(); if (dialogResult.HasValue && dialogResult.Value == true) { //Si j'appuie sur le bouton Ok, je renvoi l'objet commande se trouvant dans le datacontext de la fenêtre return (Reservation_Salle)creationreservationSalle.DataContext; } else { try { //On détache tous les élements liés à la réservation Reservation_SalleContact_Client_Invite ObservableCollection<Reservation_SalleContact_Client_Invite> toRemove = new ObservableCollection<Reservation_SalleContact_Client_Invite>(); foreach (Reservation_SalleContact_Client_Invite item in ((Reservation_Salle)creationreservationSalle.DataContext).Reservation_SalleContact_Client_Invite) { toRemove.Add(item); } foreach (Reservation_SalleContact_Client_Invite item in toRemove) { ((App)App.Current).mySitaffEntities.Detach(item); } //On détache tous les élements liés à la réservation Reservation_SalleContact_Fournisseur_Invite ObservableCollection<Reservation_SalleContact_Fournisseur_Invite> toRemove1 = new ObservableCollection<Reservation_SalleContact_Fournisseur_Invite>(); foreach (Reservation_SalleContact_Fournisseur_Invite item in ((Reservation_Salle)creationreservationSalle.DataContext).Reservation_SalleContact_Fournisseur_Invite) { toRemove1.Add(item); } foreach (Reservation_SalleContact_Fournisseur_Invite item in toRemove1) { ((App)App.Current).mySitaffEntities.Detach(item); } //On détache tout les éléments liés à la réservation Reservation_SalleSalarie_Invite ObservableCollection<Reservation_SalleSalarie_Invite> toRemove2 = new ObservableCollection<Reservation_SalleSalarie_Invite>(); foreach (Reservation_SalleSalarie_Invite item in ((Reservation_Salle)creationreservationSalle.DataContext).Reservation_SalleSalarie_Invite) { toRemove2.Add(item); } foreach (Reservation_SalleSalarie_Invite item in toRemove2) { ((App)App.Current).mySitaffEntities.Detach(item); } //On détache tout les éléments liés à la réservation Reservation_SalleBesoin_Reservation_Salle ObservableCollection<Reservation_SalleBesoin_Reservation_Salle> toRemove3 = new ObservableCollection<Reservation_SalleBesoin_Reservation_Salle>(); foreach (Reservation_SalleBesoin_Reservation_Salle item in ((Reservation_Salle)creationreservationSalle.DataContext).Reservation_SalleBesoin_Reservation_Salle) { toRemove3.Add(item); } foreach (Reservation_SalleBesoin_Reservation_Salle item in toRemove3) { ((App)App.Current).mySitaffEntities.Detach(item); } //On détache la réservation ((App)App.Current).mySitaffEntities.Detach((Reservation_Salle)creationreservationSalle.DataContext); } catch (Exception) { } //Si j'appuie sur le bouton annuler, je préviens que j'annule mon ajout ((App)App.Current)._theMainWindow.progressBarMainWindow.IsIndeterminate = false; this.recalculMax(); ((App)App.Current)._theMainWindow.textBlockMainWindow.Text = "Ajout d'une réservation annulé : " + this.listReservationSalle.Count() + " / " + this.max; return null; } }