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);
            }
        }