예제 #1
0
        /// <summary>
        /// Ajoute un volume à la base de données.
        /// </summary>
        /// <param name="volume"></param>
        private void AddVolume(ServiceReference.Volume volume)
        {
            ServiceReference.IadminServiceClient sClient = new ServiceReference.IadminServiceClient();

            try
            {
                sClient.AddVolume(volume);
                SetMessage("Volume ajouté !");
            }
            catch (System.ServiceModel.EndpointNotFoundException endpointEx)
            {
                int       cstmErrorN = 9; // "End point not found! Vérifiez que le serveur est lancé."
                CstmError cstmError  = new CstmError(cstmErrorN, endpointEx);
                CstmError.Display(cstmError);
            }
            catch (System.ServiceModel.FaultException <ServiceReference.CustomFault> Fault)
            {
                CstmError.Display(Fault.Message);
            }
            catch (CstmError cstmError)
            {
                CstmError.Display(cstmError);
            }
            catch (Exception e)
            {
                MessageBox.Show(string.Format("Une exception s'est produite à l'ajout : \n {0}", e.Message), "Erreur",
                                MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
예제 #2
0
        /// <summary>
        /// Selectionne le volume courant.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void dgvItems_MouseDoubleClick(object sender, MouseEventArgs e)
        {
            int?SlctdVolumeId = (int)dgvItems.SelectedRows[0].Cells["Id"].Value;    //     _newAuthors.SingleOrDefault(a => a.PersId == (int)dgvItems.SelectedRows[0].Cells["PersId"].Value);

            if (SlctdVolumeId != null)
            {
                _currentVolume = _volumes.FirstOrDefault(v => v.Id == SlctdVolumeId);
                SetVolInfoBox(true);
                //   _bsDataGridView.ResetBindings(false);// Sinon ne mets pas l'affichage à jour.
            }
        }
예제 #3
0
 /// <summary>
 /// Concatène les noms des auteurs pour l'affichage.
 /// </summary>
 /// <param name="volume"></param>
 /// <returns></returns>
 private string SetAuthorDisplay(ServiceReference.Volume volume)
 {
     if (volume.Authors != null)
     {
         string authors = null;
         foreach (ServiceReference.Author author in _currentVolume.Authors)
         {
             authors += author.FirstName + " " + author.LastName + " ; ";
         }
         return(authors);
     }
     return("");
 }
예제 #4
0
 /// <summary>
 /// Créé un volume ou un item et appelle la méthode d'ajout.
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void btAddAction_Click(object sender, EventArgs e)
 {   // Si ajout de volume.
     if (rbAddVolume.Checked == true)
     {
         // test et save
         if (
             CheckInputStrg.Check(CheckInputStrg.InputType.Isbn, tbIsbnSearch.Text) == true &&
             CheckInputStrg.Check(CheckInputStrg.InputType.Title, tbTitleSearch.Text) == true &&
             _newAuthors != null
             )
         {
             ServiceReference.Volume newVolume = new ServiceReference.Volume();
             newVolume.Isbn    = tbIsbnSearch.Text;
             newVolume.Title   = tbTitleSearch.Text;
             newVolume.Authors = _newAuthors.ToArray <ServiceReference.Author>();
             newVolume.Cover   = tbCoverPath.Text;
             AddVolume(newVolume);
             _newAuthors.Clear();
             _bsDataGridView.ResetBindings(false);   // Sinon ne mets pas l'affichage à jour.
             GetVolumeDetailsByIsbn(newVolume.Isbn); //Pour rafraîchir et avoir l'Id.
             SetVolInfoBox(true);
         }
     }
     // Si ajout d'exemplaire.
     // test et save
     if (
         CheckInputStrg.Check(CheckInputStrg.InputType.ItemCode, tbItemCode.Text) == true &&
         _currentVolume != null &&
         _currentLibrary != null
         )
     {
         ServiceReference.Item newItem = new ServiceReference.Item();
         newItem.Code      = tbItemCode.Text;
         newItem.LibraryId = _currentLibrary.Id;
         newItem.VolumeId  = (Int32)_currentVolume.Id;
         newItem.BuyDate   = dateTimePickerItem.Value;
         AddItem(newItem);
         //      GetVolumeDetailsByIsbn(_currentVolume.Isbn);
     }
     else
     {
         MessageBox.Show("Veuillez remplir les champs !", "Informations manquantes",
                         MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
     }
 }
예제 #5
0
 /// <summary>
 /// Retourne un volume par son titre.
 /// </summary>
 /// <param name="titleLike"></param>
 private void GetVolumeDetailsByTitle(string titleLike)
 {
     ServiceReference.AffiliateServiceClient sClient = new ServiceReference.AffiliateServiceClient();
     try
     {
         ServiceReference.Volume volume = sClient.GetVolumeByTitle(tbTitleSearch.Text);
         if (volume.Id != null)
         {
             _currentVolume = volume;
         }
         else
         {
             MessageBox.Show(string.Format("Le titre {0}\n n'a rien retourné !", tbTitleSearch.Text), "Désolé",
                             MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
         }
         SetVolSrchInfos(true);
         SetVolInfoBox(true);
     }
     catch (System.ServiceModel.EndpointNotFoundException endpointEx)
     {
         int       cstmErrorN = 9; // "End point not found! Vérifiez que le serveur est lancé."
         CstmError cstmError  = new CstmError(cstmErrorN, endpointEx);
         CstmError.Display(cstmError);
     }
     catch (System.ServiceModel.FaultException <ServiceReference.CustomFault> Fault)
     {
         CstmError.Display(Fault.Message);
     }
     catch (CstmError cstmError)
     {
         CstmError.Display(cstmError);
     }
     catch (Exception e)
     {
         MessageBox.Show("Une exception s'est produite à la récupération des données !", "Erreur",
                         MessageBoxButtons.OK, MessageBoxIcon.Error);
     }
 }
예제 #6
0
        /// <summary>
        /// Prépare l'ajout d'un volume ou d'un exemplaire, selon le choix de l'utilisateur.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void rbAddVolume_CheckedChanged(object sender, EventArgs e)
        {
            foreach (Control control in this.panelRadioButton.Controls)
            {
                if (control is RadioButton)
                {
                    RadioButton radio = control as RadioButton;
                    if (radio.Checked)
                    {
                        switch (radio.Name)
                        {
                        case "rbAddVolume":
                            // Mise en forme visuelle.
                            panelAddItem.BorderStyle = BorderStyle.None;
                            panelAddItem.Hide();
                            listBoxAuthor.Visible = true;
                            SetVolSrchInfos(false);

                            tbIsbnSearch.ReadOnly  = false;
                            tbTitleSearch.ReadOnly = false;
                            tbFirstName.ReadOnly   = false;
                            tbLastName.ReadOnly    = false;
                            tbCoverPath.ReadOnly   = false;

                            break;

                        case "rbAddItem":
                            // Mise en forme visuelle.
                            panelAddItem.BorderStyle = BorderStyle.FixedSingle;
                            panelAddItem.Show();
                            listBoxAuthor.Visible = false;

                            tbItemCode.ReadOnly  = true;
                            tbCoverPath.ReadOnly = true;
                            dateTimePickerItem.Hide();

                            //Logique
                            if (_currentVolume != null)
                            {
                                SetVolSrchInfos(true);
                                //(Ne devrait pas arriver, sécurité).
                                //Si les infos affichéees sont celles du volume en cours, on
                                //locke les textboxes Volume, sinon on propose de sauver le volume actuel.
                                if (tbIsbnSearch.Text == _currentVolume.Isbn &&
                                    tbTitleSearch.Text == _currentVolume.Title)
                                {
                                    // Lock le volume
                                    tbIsbnSearch.ReadOnly  = true;
                                    tbTitleSearch.ReadOnly = true;
                                    tbFirstName.ReadOnly   = true;
                                    tbLastName.ReadOnly    = true;
                                    //Unlock l'item
                                    tbItemCode.ReadOnly = false;
                                    dateTimePickerItem.Show();
                                }
                                // Ou on propose de sauver le volume actuel.
                                else
                                {
                                    DialogResult dr = MessageBox.Show(" Choisisez un volume avant de créer un exemplaire !\n" +
                                                                      "Voulez vous créer un volume sur base des données rentrées ?", "Warning", MessageBoxButtons.YesNo);
                                    if (dr == DialogResult.Yes)
                                    {    // test et save
                                        if (
                                            CheckInputStrg.Check(CheckInputStrg.InputType.Isbn, tbIsbnSearch.Text) == true &&
                                            CheckInputStrg.Check(CheckInputStrg.InputType.Title, tbTitleSearch.Text) == true &&
                                            _newAuthors != null
                                            )
                                        {
                                            ServiceReference.Volume newVolume = new ServiceReference.Volume();
                                            newVolume.Isbn    = tbIsbnSearch.Text;
                                            newVolume.Title   = tbTitleSearch.Text;
                                            newVolume.Authors = _newAuthors.ToArray <ServiceReference.Author>();
                                            newVolume.Cover   = tbCoverPath.Text;
                                            AddVolume(newVolume);
                                        }
                                        this.Close();
                                    }
                                    else if (dr == DialogResult.No)
                                    {
                                        this.Close();
                                        searchMode     = true;
                                        _currentVolume = null;
                                        SetVolSrchInfos(true);
                                        SetVolInfoBox(true);
                                    }
                                }
                            }
                            break;

                        default:
                            break;
                        }
                    }
                }
            }
        }