Example #1
0
        /// <summary>
        /// Cette fonction permet d'appeler la fonction "GetBagageByCodeIata" via le proxy
        /// Une fois la fonction appelée, 3 états sont possibles :
        ///1) si aucun bagage n'est retournée : mode CreationBagage
        ///2) si un bagage est retourné : mode AfficherBagage
        ///3) si plusieurs bagages sont retournés : exception + mode AttenteBagage --> Affichage d'une nouvelle fenêtre pour selectionner le bagage souhaité
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button_RechercheBagageIata(object sender, EventArgs e)
        {
            // Récupère le codeIata donné par l'utilisateur dans textBox
            string txt = textBoxRecherche.Text;

            try
            {
                var bagageReturn = proxy.GetBagageByCodeIata(txt);

                if (bagageReturn == null)
                {
                    State = PimState.CreationBagage;
                }
                else
                {
                    definitionFinalBagage(bagageReturn);
                }
            }
            catch (FaultException <MultipleBagagesFault> excp)
            {
                State = PimState.AttenteBagage;
                List <BagageDefinition> lst = excp.Detail.ListBagages.OfType <BagageDefinition>().ToList();
                // Création d'un nouveau formulaire pour selectionner le bagage parmis une liste
                formBaggageSelect = new Form2(lst, this);
            }
            catch (CommunicationException excp)
            {
                Console.WriteLine("Type Une erreur de communication c'est produite dans le traitement de votre demande \nType: " + excp.GetType().ToString() + "\nMessage: " + excp.Message);
            }
            catch (Exception excp)
            {
                Console.WriteLine("Une erreur de communication c'est produite dans le traitement de votre demande \nType: " + excp.GetType().ToString() + "\nMessage: " + excp.Message);
            }
        }
Example #2
0
        /// <summary>
        /// Méthode abonnée à l'événement de changement d'état.
        /// Met à jour la barre de statut.
        /// Appelle la bonne méthode de gestion de l'interface.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="state">Nouvel état</param>
        void PIM_PimStateChanged(object sender, PimState state)
        {
            this.toolStripStatusLabelEtat.Text    = state.ToString();
            this.toolStripStatusLabelMessage.Text = "Messages";

            switch (state)
            {
            case PimState.Deconnecte:
                deconnecter();
                break;

            case PimState.AttenteBagage:
                attenteBagage();
                break;

            case PimState.SelectionBagage:
                selectBagage();
                break;

            case PimState.CreationBagage:
                creationBagage();
                break;

            case PimState.AffichageBagage:
                afficherBagage();
                break;
            }
        }
Example #3
0
        void PIM_PimStateChanged(object sender, PimState state)
        {
            switch (State)
            {
            case PimState.AffichageBagage:
                AffichageBagage();
                break;

            case PimState.AttenteBagage:
                AttenteBagage();
                break;

            case PimState.CreationBagage:
                CreationBagage();
                break;

            case PimState.SelectionBagage:
                SelectionBagage();
                break;

            case PimState.Deconnecter:
                Deconnecter();
                break;
            }
        }
Example #4
0
        /// <summary>
        /// Update a bagage, company and creation date cannot be modified
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void saveButton_Click(object sender, EventArgs e)
        {
            BagageDefinition bagage = new BagageDefinition();

            bagage.IdBagage       = selectedBagage.IdBagage;
            bagage.CodeIata       = selectedBagage.CodeIata;
            bagage.EnContinuation = continuationCheckBox.Checked;
            bagage.Itineraire     = destinationTextBox.Text;
            bagage.Ligne          = lineTextBox.Text;
            bagage.Prioritaire    = !(classTextBox.Text.Equals("") || classTextBox.Text.Equals("Non prioritaire"));
            bagage.Rush           = rushCheckBox.Checked;

            // update in the database and display a message whether it is updated
            try
            {
                selectedBagage = proxy.UpdateBagage(bagage);
                State          = PimState.DisplayBagage;
                MessageBox.Show("Bagage saved ! id=" + bagage.IdBagage);
            }
            catch (FaultException excp)
            {
                this.label12.Text   += excp.Message;
                this.label12.Visible = true;
            }
            catch (AggregateException)
            {
                this.label12.Text   += "Une erreur de communication s'est produite dans le traitement de votre demande";
                this.label12.Visible = true;
            }
            catch (Exception)
            {
                this.label12.Text   += "Une erreur s'est produite dans le traitement de votre demande";
                this.label12.Visible = true;
            }
        }
Example #5
0
        private void FormIhm_PimStateChanged(object sender, PimState state)
        {
            //Pour que ça fasse plus propre, On passe par un système d'état et les actions ne sont pas directement implémentés dans les méthodes appelés par les actions utilisateur sur l'IHM
            switch (state)
            {
            case PimState.Deconnecter:
                Deconnecter();
                break;

            case PimState.SelectionBagage:
                SelectionBagage();
                break;

            case PimState.CreationBagage:
                creationBagageToolStripMenuItem_Click(null, null);
                break;

            case PimState.AttenteBagage:
                AttenteBagage();
                break;

            case PimState.AffichageBagage:
                AfficherBagage();
                break;
            }
        }
Example #6
0
        /// <summary>
        /// Action on pim state changed
        /// </summary>
        /// <param name="newState"></param>
        private void OnPimStateChanged(PimState newState)
        {
            if (newState != this.state)
            {
                this.state = newState;
                PimStateChanged(this, this.state);
                switch (newState)
                {
                case PimState.CreateBagage:
                    createBagage();
                    break;

                case PimState.DisplayBagage:
                    displayBagage();
                    displayBagage(selectedBagage);
                    break;

                case PimState.SelectBagage:
                    selectBagage();
                    break;

                case PimState.WaitingBagage:
                    waitingBagage();
                    break;

                default:
                    disconnect();
                    break;
                }
            }
        }
Example #7
0
 public Form1()
 {
     InitializeComponent();
     this.PimStateChanged += PIM_PimStateChanged;
     State = PimState.AttenteBagage;
     proxy = new ServiceReferencePim.ServicePimClient();
 }
Example #8
0
 /// <summary>
 /// Constructeur.
 /// </summary>
 public PIM()
 {
     InitializeComponent();
     this.PimStateChanged += PIM_PimStateChanged;
     this.proxy            = new ServiceReferencePim.ServicePimClient();
     this.State            = PimState.Deconnecte;
 }
Example #9
0
        private void SelectionBagage()
        {
            this.GB_RECHERCHE.Visible = true;
            this.GB_RECHERCHE.Enabled = true;
            this.GB_RESULTAT.Visible  = true;
            this.GB_RESULTAT.Enabled  = true;
            this.GB_VOL.Visible       = true;
            this.GB_VOL.Enabled       = false;
            this.GB_BAGAGE.Visible    = true;
            this.GB_BAGAGE.Enabled    = false;

            this.comboBox1.Text       = " ";
            this.textboxCompanie.Text = " ";
            this.textBoxJour.Text     = " ";
            this.textboxLigne.Text    = " ";

            if (this.SelectBag == null)
            {
                this.SelectBag = new BagageSelect();
            }
            SelectBag.ListBagages = bags;
            if (this.SelectBag.ShowDialog() == DialogResult.OK)
            {
                bags       = new BagageDefinition[] { SelectBag.Bagage };
                this.State = PimState.AffichageBagage;
            }
            this.SelectBag.Show();
        }
Example #10
0
 private void OnPimStateChanged(PimState newState)
 {
     if (newState != state)
     {
         state = newState;
         PimStateChanged?.Invoke(this, state);
     }
 }
Example #11
0
 /// <summary>
 /// Constructor
 /// </summary>
 public Pim()
 {
     InitializeComponent();
     PimStateChanged        += PIM_PimStateChanged;
     bagageIdButton.Click   += new EventHandler(this.bagageIdButton_Click);
     bagageIataButton.Click += new EventHandler(this.bagageIataButton_Click);
     clearButton.Click      += new EventHandler(this.clearButton_Click);
     disconnect();
     this.state = PimState.Disconnect;
 }
Example #12
0
 private void OnPimStateChanged(PimState newState, bool force = false)
 {
     if ((newState != this.state) || force)
     {
         this.state = newState;
         if (this.PimStateChanged != null)
         {
             PimStateChanged(this, this.state);
         }
     }
 }
Example #13
0
 private void OnPimStateChanged(PimState newState)
 {
     if (newState != this.state)
     {
         this.state = newState;
         if (this.PimStateChanged != null)
         {
             PimStateChanged(this, this.state);
         }
     }
 }
Example #14
0
 private void OnPimStateChanged(PimState newState, bool force = false)
 {
     if (newState != this.state || force)
     {
         this.state = newState;
         if (this.PimStateChanged != null) //Première initialisation
         {
             PimStateChanged(this, this.state);
         }
     }
 }
Example #15
0
 /// <summary>
 /// Clear all fields in search tab
 /// </summary>
 private void clearSearch()
 {
     bagageIdTextBox.Text       = "";
     companyTextBox.Text        = "";
     lineTextBox.Text           = "";
     explotationDayTextBox.Text = "";
     destinationTextBox.Text    = "";
     classTextBox.Text          = "";
     label12.Text    = "Message : ";
     label12.Visible = false;
     continuationCheckBox.Checked = false;
     rushCheckBox.Checked         = false;
     State = PimState.Disconnect;
 }
Example #16
0
        /// <summary>
        /// Récupère depuis le webservice le bagage associé au code Iata entré, et affiche les informations du bagage.
        /// Si le code Iata n'existe pas en base, il est alors possible de créer le bagage.
        /// Dans le cas de plusieurs bagages associés au code Iata, un popup demande quel bagage afficher.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button_getBagage_Click(object sender, EventArgs e)
        {
            try
            {
                ServiceReferencePim.BagageDefinition bagage = this.proxy.GetBagageByCodeIata(this.textBox_CodeIata.Text);

                if (bagage != null)
                {
                    this.afficherBagageInfo(bagage);
                    this.State = PimState.AffichageBagage;
                }
                else
                {
                    this.State = PimState.CreationBagage;
                    this.toolStripStatusLabelMessage.Text = "Aucune correspondance trouvée";
                }
            }
            catch (FaultException <ServiceReferencePim.MultipleBagageFault> ex)            //Plusieurs bagages retournés
            {
                this.State = PimState.SelectionBagage;
                this.toolStripStatusLabelMessage.Text = ex.Detail.Message;

                //Ouvre un popup listant les bagages retournés.
                ChooseBagagePopup popup = new ChooseBagagePopup(new List <ServiceReferencePim.BagageDefinition>(ex.Detail.ListBagages));
                if (popup.ShowDialog(this) == DialogResult.OK)
                {
                    this.afficherBagageInfo(ex.Detail.ListBagages[popup.IndexBagageChoisi]);
                    this.State = PimState.AffichageBagage;
                }
                else
                {
                    this.State = PimState.AttenteBagage;
                }
                popup.Dispose();
            }
            catch (FaultException)
            {
                MessageBox.Show("Une erreur s'est produite dans le traitement de votre demande.");
            }
            catch (CommunicationException)
            {
                MessageBox.Show("Une erreur de communication s'est produite dans le traitement de votre demande.");
            }
            catch (Exception)
            {
                MessageBox.Show("Une erreur s’est produite dans le traitement de votre demande.\nMerci de bien vouloir réessayer ultérieurement ou contacter votre administrateur.", "Erreur dans le traitement de votre demande", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Example #17
0
        /// <summary>
        /// Create a new bagage on button click
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void saveNewButton_Click(object sender, EventArgs e)
        {
            String codeIata = codeIataSave.Text;

            if (codeIata.Length == 12 && codeIata.Substring(codeIata.Length - 2).Equals("00"))
            {
                // if the iata code correspond to the format ____XXXXXX00
                BagageDefinition bagage = new BagageDefinition();
                bagage.CodeIata       = codeIataSave.Text;
                bagage.Compagnie      = companySave.Text;
                bagage.EnContinuation = continueSave.Checked;
                bagage.Itineraire     = destinationSave.Text;
                bagage.Ligne          = lineSave.Text;
                bagage.Prioritaire    = prioritySave.Checked;
                bagage.Rush           = rushSave.Checked;

                // save in the database and display a message whether it is saved
                try
                {
                    bagage.IdBagage = proxy.CreateBagage(bagage);
                    State           = PimState.CreateBagage;
                    MessageBox.Show("Bagage saved ! id=" + bagage.IdBagage);
                }
                catch (FaultException excp)
                {
                    this.label12.Text   += excp.Message;
                    this.label12.Visible = true;
                }
                catch (AggregateException)
                {
                    this.label12.Text   += "Une erreur de communication s'est produite dans le traitement de votre demande";
                    this.label12.Visible = true;
                }
                catch (Exception)
                {
                    this.label12.Text   += "Une erreur s'est produite dans le traitement de votre demande";
                    this.label12.Visible = true;
                }
            }
            else
            {
                // if iata code format does not coresspond, display a message
                label12.Text = "Message : Le code iata ne correspond pas au bon format 12 caractères finissant par 00";
            }
        }
Example #18
0
        /// <summary>
        /// Demande au service web de créer un bagage dans la base de données en lui transmettant les informations du bagage renseignées par l'utilisateur.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button_CreerBagage_Click(object sender, EventArgs e)
        {
            try
            {
                ServiceReferencePim.BagageDefinition newBag = new ServiceReferencePim.BagageDefinition
                {
                    IdBagage       = -1,               //ID à -1 car ce n'est pas à nous de le créer, il est auto-incrémenté à l'insertion dans la base
                    CodeIata       = this.textBox_CodeIata.Text,
                    Compagnie      = this.textBox_Compagnie.Text,
                    Ligne          = this.textBox_Ligne1.Text,
                    DateVol        = DateTime.Parse(this.textBox_JourExploitation.Text), //Conversion string en DateTime
                    Itineraire     = this.textBox_Itineraire.Text,
                    Prioritaire    = false,                                              //False par défaut, car pas de champ dans l'interface pour renseigner ce paramètre (également en rapport avec la classe du bagage pas gérée non plus)
                    Classe         = this.textBox_ClasseBagage.Text,
                    EnContinuation = this.checkBox_Continuation.Checked,
                    Rush           = this.checkBox_Rush.Checked
                };

                if (this.proxy.CreateBagage(newBag))
                {
                    this.State = PimState.AffichageBagage;
                    this.toolStripStatusLabelMessage.Text = "Bagage créé";
                }
                else
                {
                    MessageBox.Show("Le bagage n'a pas pu être créé.");
                }
            }
            catch (FormatException)
            {
                MessageBox.Show("Le jour d'exploitation doit respecter le format jj/mm/aaa hh:mm:ss");
            }
            catch (FaultException ex)
            {
                MessageBox.Show(ex.Message);
            }
            catch (CommunicationException)
            {
                MessageBox.Show("Une erreur de communication s'est produite dans le traitement de votre demande.");
            }
            catch
            {
                MessageBox.Show("Une erreur s’est produite dans le traitement de votre demande.\nMerci de bien vouloir réessayer ultérieurement ou contacter votre administrateur.", "Erreur dans le traitement de votre demande", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Example #19
0
 /// <summary>
 /// Display a bagage
 /// </summary>
 /// <param name="selectedBagage"></param>
 public void displayBagage(BagageDefinition selectedBagage)
 {
     if (selectedBagage != null)
     {
         // if found, display
         companyTextBox.Text          = selectedBagage.Compagnie;
         lineTextBox.Text             = selectedBagage.Ligne;
         explotationDayTextBox.Text   = selectedBagage.DateVol.ToString("yyyy-MM-dd");
         destinationTextBox.Text      = selectedBagage.Itineraire;
         classTextBox.Text            = selectedBagage.Prioritaire ? "Prioritaire" : "Non prioritaire";
         continuationCheckBox.Checked = selectedBagage.EnContinuation;
         rushCheckBox.Checked         = selectedBagage.Rush;
         State = PimState.SelectBagage;
     }
     else
     {
         // if not found, display a message
         MessageBox.Show("Bagage not found ");
     }
 }
Example #20
0
        private void button1_Click_1(object sender, EventArgs e)
        {
            try
            {
                bags = proxy.GetBagageByCodeIata(this.comboBox1.Text);
            }
            catch (FaultException excp)
            {
                this.listBoxLogs.Items.Add("Une erreur s'est produite dans le traitement de votre demande");
                this.listBoxLogs.Items.Add("\tCode: " + excp.Code.Name);
                this.listBoxLogs.Items.Add("\tReason: " + excp.Reason);
            }
            catch (CommunicationException excp)
            {
                this.listBoxLogs.Items.Add("Une erreur de communication c'est produite dans le traitement de votre demande");
                this.listBoxLogs.Items.Add("\tType: " + excp.GetType().ToString());
                this.listBoxLogs.Items.Add("\tMessage: " + excp.Message);
            }
            catch (Exception excp)
            {
                this.listBoxLogs.Items.Add("Une erreur s'est produite dans le traitement de votre demande");
                this.listBoxLogs.Items.Add("\tType: " + excp.GetType().ToString());
                this.listBoxLogs.Items.Add("\tMessage: " + excp.Message);
            }


            //bags.Count devient bags.Length
            if (bags.Length == 0)
            {
                this.State = PimState.CreationBagage;
            }
            else if (bags.Length == 1)
            {
                this.State = PimState.AffichageBagage;
            }
            else
            {
                this.State = PimState.SelectionBagage;
            }
        }
Example #21
0
        /// <summary>
        /// Cette fonction permet d'enregistrer un nouveau bagage en appelant la fonction "CreateBagage" via le proxy.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button_EnregistrerBagage(object sender, EventArgs e)
        {
            // Vérifie que toutes les informations sont entrées
            if (string.IsNullOrWhiteSpace(textBoxCompagnie.Text) || string.IsNullOrWhiteSpace(textBoxLigne.Text) || string.IsNullOrWhiteSpace(textBoxItineraire.Text))
            {
                // Remettre les labels au mode : normal
                resetEmptyBoxColor();
                // Gestion des textBox vides
                emptyTextBox();
            }
            else
            {
                // Enregistrer les informations : Ajouter dans BDD
                BagageDefinition bag = new BagageDefinition();

                bag.CodeIata       = this.textBoxRecherche.Text;
                bag.Compagnie      = this.textBoxCompagnie.Text;
                bag.Itineraire     = this.textBoxItineraire.Text;
                bag.Rush           = this.checkBoxRush.Checked;
                bag.EnContinuation = this.checkBoxContinuation.Checked;
                bag.Prioritaire    = this.checkBoxPrioritaire.Checked;
                bag.Ligne          = textBoxLigne.Text;

                // Crée le bagage
                proxy.CreateBagage(bag);


                // Remettre les labels au mode : normal
                resetEmptyBoxColor();

                // Rend les groupBox Vol et Bagage invisible
                groupBoxVol.Visible    = false;
                groupBoxBagage.Visible = false;
                textBoxRecherche.Clear();

                // Change mode user
                State = PimState.AttenteBagage;
            }
        }
Example #22
0
        /// <summary>
        /// Search bagage by id button action
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void bagageIdButton_Click(object sender, EventArgs e)
        {
            BagageDefinition bagage = null;
            int id = Convert.ToInt32(bagageIdTextBox.Text);

            // Get bagage display, display message if error
            try
            {
                bagage = proxy.GetBagageById(id);
            }
            catch (AggregateException)
            {
                this.label12.Text   += "Une erreur de communication c'est produite dans le traitement de votre demande";
                this.label12.Visible = true;
            }
            catch (Exception)
            {
                this.label12.Text   += "Une erreur s'est produite dans le traitement de votre demande";
                this.label12.Visible = true;
            }

            if (bagage != null)
            {
                // if found, display it
                this.selectedBagage = bagage;
                State = PimState.DisplayBagage;
            }
            else
            {
                // if not found display message
                String tempId = bagageIdTextBox.Text;
                clearSearch();
                bagageIdTextBox.Text = tempId;
                this.label12.Text   += " Pas de bagage trouvé pour l'id ";
                this.label12.Text   += bagageIdTextBox.Text;
                this.label12.Visible = true;
            }
        }
Example #23
0
        void PIM_PimStateChanged(object sender, PimState state)
        {
            switch (state)
            {
            case PimState.AffichageBagage:
                afficherBagage();
                break;

            case PimState.AttenteBagage:
                attenteBagage();
                break;

            case PimState.CreationBagage:
                creationBagage();
                break;

            case PimState.Deconnecter:
                break;

            case PimState.SelectionBagage:
                break;
            }
        }
Example #24
0
 void PIM_PimStateChanged(object sender, PimState state)
 {
     MessageBox.Show("StateChanged");
 }
Example #25
0
 private void creationBagageToolStripMenuItem_Click(object sender, EventArgs e)
 {
     this.State = PimState.CreationBagage;
 }
Example #26
0
 /// <summary>
 /// Permet la réinitialisation de l'interface (mode attente de bagage)
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void buttonReinit_Click(object sender, EventArgs e)
 {
     State = PimState.AttenteBagage;
 }
Example #27
0
 private void affichageBagageToolStripMenuItem_Click(object sender, EventArgs e)
 {
     State = PimState.AffichageBagage;
 }
Example #28
0
 private void selectionBagageToolStripMenuItem_Click(object sender, EventArgs e)
 {
     State = PimState.SelectionBagage;
 }
Example #29
0
 /// <summary>
 /// Définit le bagage à afficher.
 /// Une fois le bagage définit ->changement d'état : Mode Affichage Bagage
 /// </summary>
 /// <param name="bag"></param>
 public void definitionFinalBagage(BagageDefinition bag)
 {
     this.finalBag = bag;
     State         = PimState.AffichageBagage;
 }
Example #30
0
 private void deconnecterToolStripMenuItem_Click(object sender, EventArgs e)
 {
     State = PimState.Deconnecter;
 }