/// <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); } }
/// <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. } }
/// <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(""); }
/// <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); } }
/// <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); } }
/// <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; } } } } }