public void Supprimer(int idOuvrage) { using (IUnitOfWork uow = BeginTransaction()) { Ouvrage ou = depotOuvrages.Read(idOuvrage); if (ou == null) { throw new Exception("Ne peut pas supprimer un ouvrage inexistant."); } List <Exemplaire> ouExemplaires = ou.Exemplaires.Where(e => !e.EstDisponible()).ToList(); if (ouExemplaires.Count > 0) { throw new Exception("Ne peut pas supprimer un ouvrage ayant un exemplaire en cours de pret."); } while (ou.Exemplaires.Count > 0) { Exemplaire ex = ou.Exemplaires[0]; List <Pret> exPrets = depotPrets.Query().Where(p => p.Exemplaire != null && p.Exemplaire.Id == ex.Id).ToList(); foreach (Pret pret in exPrets) { pret.Exemplaire = null; } ou.Remove(ex); depotExemplaires.Delete(ex); } depotOuvrages.Delete(ou); uow.Commit(); } }
public void Supprimer(int idExemplaire) { using (IUnitOfWork uow = BeginTransaction()) { Exemplaire ex = depotExemplaires.Read(idExemplaire); if (ex == null) { throw new Exception("Ne peut pas supprimer un exemplaire inexistant."); } if (ex.Ouvrage == null) { throw new Exception("Ne peut pas supprimer d'exemplaire sans ouvrage"); } if (!ex.EstDisponible()) { throw new Exception("Ne peut pas supprimer un exemplaire en cours de pret."); } Ouvrage ouvrage = depotOuvrages.Read(ex.Ouvrage.Id); if (ouvrage == null) { throw new Exception("Ne peut pas supprimer un exemplaire dont l'ouvrage est inexistant."); } ouvrage.Remove(ex); depotExemplaires.Delete(ex); uow.Commit(); } }
private void btn_SupprimerExemplaire_Click(object sender, EventArgs e) { int idx = lbx_AjouterOuvrage_Exemplaires.SelectedIndex; try { _Ouvrage.Remove(_Ouvrage.Exemplaires[idx]); AfficherListe(); } catch (Exception ex) { MessageBox.Show(ex.Message, "Suppression échoué", MessageBoxButtons.OK, MessageBoxIcon.Error); } }