/// <summary>
        /// duplique la commande passée en paramètre
        /// </summary>
        /// <param name="commande1">commande à dupliquer</param>
        private Reservation_Salle duplicateReservationSalle(Reservation_Salle itemToCopy)
        {
            Reservation_Salle tmp = new Reservation_Salle();

            tmp.Date_Reservation = itemToCopy.Date_Reservation;
            tmp.Date_Reservation_Fin = itemToCopy.Date_Reservation_Fin;
            tmp.Heure_Debut = itemToCopy.Heure_Debut;
            tmp.Heure_Fin = itemToCopy.Heure_Fin;
            tmp.Nb_Participants = itemToCopy.Nb_Participants;
            tmp.ObjetReunion = itemToCopy.ObjetReunion;
            tmp.Commentaire = itemToCopy.Commentaire;
            tmp.Entreprise_Mere1 = itemToCopy.Entreprise_Mere1;
            tmp.Salle1 = itemToCopy.Salle1;
            foreach (Reservation_SalleBesoin_Reservation_Salle item in itemToCopy.Reservation_SalleBesoin_Reservation_Salle)
            {
                Reservation_SalleBesoin_Reservation_Salle toAdd = new Reservation_SalleBesoin_Reservation_Salle();
                toAdd.Quantite = item.Quantite;
                toAdd.Besoin_Reservation_Salle1 = item.Besoin_Reservation_Salle1;
                tmp.Reservation_SalleBesoin_Reservation_Salle.Add(toAdd);

            }
            foreach (Reservation_SalleContact_Client_Invite item in itemToCopy.Reservation_SalleContact_Client_Invite)
            {
                Reservation_SalleContact_Client_Invite toAdd = new Reservation_SalleContact_Client_Invite();
                toAdd.Contact1 = item.Contact1;
                tmp.Reservation_SalleContact_Client_Invite.Add(toAdd);
            }
            foreach (Reservation_SalleContact_Fournisseur_Invite item in itemToCopy.Reservation_SalleContact_Fournisseur_Invite)
            {
                Reservation_SalleContact_Fournisseur_Invite toAdd = new Reservation_SalleContact_Fournisseur_Invite();
                toAdd.Contact1 = item.Contact1;
                tmp.Reservation_SalleContact_Fournisseur_Invite.Add(toAdd);
            }
            foreach (Reservation_SalleSalarie_Invite item in itemToCopy.Reservation_SalleSalarie_Invite)
            {
                Reservation_SalleSalarie_Invite toAdd = new Reservation_SalleSalarie_Invite();
                toAdd.Salarie1 = item.Salarie1;
                tmp.Reservation_SalleSalarie_Invite.Add(toAdd);
            }
            tmp.Salarie1 = ((App)App.Current)._connectedUser.Salarie_Interne1.Salarie;
            return tmp;
        }
        /// <summary>
        /// Met à jour l'état en bas pour l'utilisateur
        /// </summary>
        /// <param name="typeEtat">texte : "Filtrage", "Ajout", "Modification", "Suppression", "Look", "" ("" = Chargement)</param>
        /// <param name="dao">un objet Commande_Fournisseur soit pour l'ajouter au listing, soit pour afficher qui a été modifié ou supprimé</param>
        public void MiseAJourEtat(string typeEtat, Reservation_Salle res)
        {
            //Je racalcul le nombre max d'élements
            this.recalculMax();
            //En fonction de l'action, j'affiche le message
            if (typeEtat == "Filtrage")
            {
                ((App)App.Current)._theMainWindow.textBlockMainWindow.Text = "filtrage des réservation terminée : " + this.listReservationSalle.Count() + " / " + this.max;
            }
            else if (typeEtat == "Ajout")
            {
                //J'ajoute la réservation dans le linsting
                this.listReservationSalle.Add(res);
                //Je racalcul le nombre max d'élements après l'ajout
                this.recalculMax();
                ((App)App.Current)._theMainWindow.textBlockMainWindow.Text = "Ajout d'une réservation numéro '" + res.Identifiant + "' effectué avec succès. Nombre d'élements : " + this.listReservationSalle.Count() + " / " + this.max;
            }
            else if (typeEtat == "Modification")
            {
                //Je raffraichis mon datagrid
                this._DataGridMain.Items.Refresh();
                ((App)App.Current)._theMainWindow.textBlockMainWindow.Text = "Modification de la réservation numéro : '" + res.Identifiant + "' effectuée avec succès. Nombre d'élements : " + this.listReservationSalle.Count() + " / " + this.max;
            }
            else if (typeEtat == "Suppression")
            {
                //Je supprime de mon listing l'élément supprimé
                this.listReservationSalle.Remove(res);
                //Je recalcul le nombre max d'élements après la suppression
                this.recalculMax();
                ((App)App.Current)._theMainWindow.textBlockMainWindow.Text = "Suppression de la réservation numéro : '" + res.Identifiant + "' effectuée avec succès. Nombre d'élements : " + this.listReservationSalle.Count() + " / " + this.max;
            }
            else if (typeEtat == "Look")
            {

            }
            else if (typeEtat == "Duplicate")
            {
                //J'ajoute la réservation dans le linsting
                this.listReservationSalle.Add(res);
                //Je racalcul le nombre max d'élements après l'ajout
                this.recalculMax();
                ((App)App.Current)._theMainWindow.textBlockMainWindow.Text = "Dupliquer une réservation numéro '" + res.Identifiant + "' effectué avec succès. Nombre d'élements : " + this.listReservationSalle.Count() + " / " + this.max;
            }
            else
            {
                ((App)App.Current)._theMainWindow.textBlockMainWindow.Text = "Chargement des réservations terminé : " + this.listReservationSalle.Count() + " / " + this.max;
            }
            //Je retri les données dans le sens par défaut
            this.triDatas();
            //J'arrete la progressbar
            ((App)App.Current)._theMainWindow.progressBarMainWindow.IsIndeterminate = false;
            this._DataGridMain.Items.Refresh();
        }
        /// <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>
        /// 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>
        /// 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;
            }
        }
Ejemplo n.º 6
0
 public void LookReservationSalle(UIElement uIElement, Reservation_Salle reservationToLook)
 {
     ((ListeReservationSalleControl)uIElement).Look(reservationToLook);
 }