void FillPrêts() { flowLayoutPanel1.Controls.Clear(); // Retrouver les prêts en cours du lecteur var collNotice = new MongoDB.Driver.MongoClient(Properties.Settings.Default.MongoDB).GetDatabase("wfBiblio").GetCollection <Notice>("Notice"); var collEmprunt = new MongoDB.Driver.MongoClient(Properties.Settings.Default.MongoDB).GetDatabase("wfBiblio").GetCollection <Emprunt>("Emprunt"); List <Emprunt> emprunts = collEmprunt.Find( Builders <Emprunt> .Filter.And( Builders <Emprunt> .Filter.Eq(a => a.idLecteur, m_lecteurId), Builders <Emprunt> .Filter.Eq(a => a.etat, 1) ) ).ToList(); foreach (Emprunt e in emprunts) { List <Notice> tmp = collNotice.Find(new BsonDocument("exemplaires._id", e.IdExemplaire)).ToList(); if (tmp != null && tmp.Count > 0) { ctrlPret p = new ctrlPret(); p.txtTitre.Text = tmp[0].titre; p.txtAuteur.Text = tmp[0].auteur; p.txtExemplaire.Text = tmp[0].exemplaires.Find(a => a._id == e.IdExemplaire).codeBarre; p.txtDatepret.Text = e.dateEmprunt.ToString("dd/MM/yyyy"); p.txtDateRetour.Text = e.dateRetourPrévue.ToString("dd/MM/yyyy"); p.Tag = tmp[0]; flowLayoutPanel1.Controls.Add(p); } } }
private void P_RetourEvent(ctrlPret ctrl) { // Notice notice = ctrl.Tag as Notice; var collNotice = new MongoDB.Driver.MongoClient(Properties.Settings.Default.MongoDB).GetDatabase("wfBiblio").GetCollection <Notice>("Notice"); ObjectId exemplaireId = (ObjectId)ctrl.Tag; if (exemplaireId == ObjectId.Empty) // Supprimer directement { var collEmprunt = new MongoDB.Driver.MongoClient(Properties.Settings.Default.MongoDB).GetDatabase("wfBiblio").GetCollection <Emprunt>("Emprunt"); List <Emprunt> emprunts = collEmprunt.Find( Builders <Emprunt> .Filter.And( Builders <Emprunt> .Filter.Eq(a => a.idLecteur, m_lecteur.infoLecteur._id), Builders <Emprunt> .Filter.Eq(a => a.etat, 1) ) ).ToList(); foreach (Emprunt e in emprunts) { List <Notice> tmp = collNotice.Find(new BsonDocument("exemplaires._id", e.IdExemplaire)).ToList(); if (tmp == null || tmp.Count == 0) { collEmprunt.UpdateOne(Builders <Emprunt> .Filter.Eq(a => a._id, emprunts[0]._id), Builders <Emprunt> .Update.Set(a => a.etat, 2).CurrentDate(a => a.dateRetourEffective)); } } FillPrêts(); } else { List <Notice> tmp = collNotice.Find(new BsonDocument("exemplaires._id", exemplaireId)).ToList(); if (tmp != null && tmp.Count > 0) { txtNewExplaire.Text = tmp[0].exemplaires.Find(a => a._id == exemplaireId).codeBarre; btnOK_Click(null, null); } } }