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 btnSearch_Click(object sender, EventArgs e) { var coll = new MongoDB.Driver.MongoClient(Properties.Settings.Default.MongoDB).GetDatabase("wfBiblio").GetCollection <Notice>("Notice"); List <Notice> tmp = new List <Notice>(); foreach (Notice notice in coll.Find(_ => true).ToList()) { bool add = false; if (notice.exemplaires == null || notice.exemplaires.Count == 0 || string.IsNullOrWhiteSpace(notice.titre)) { add = true; } if (notice.exemplaires != null) { foreach (var ex in notice.exemplaires) { if (string.IsNullOrWhiteSpace(ex.codeBarre)) { add = true; } } } if (add) { tmp.Add(notice); } } dgvNotices.DataSource = tmp; dgvNotices.AutoResizeColumns(); }
private void btnSearchNotices_Click(object sender, EventArgs e) { lblResult.Text = ""; var coll = new MongoDB.Driver.MongoClient(Properties.Settings.Default.MongoDB).GetDatabase("wfBiblio").GetCollection <Notice>("Notice"); dgvResultNotice.DataSource = null; var cursor = coll.Find( Builders <Notice> .Filter.Or( Builders <Notice> .Filter.Regex(a => a.auteur, new MongoDB.Bson.BsonRegularExpression(txtNotice.Text, "/i")), Builders <Notice> .Filter.Regex(a => a.titre, new MongoDB.Bson.BsonRegularExpression(txtNotice.Text, "/i")), Builders <Notice> .Filter.Regex(a => a.éditeur, new MongoDB.Bson.BsonRegularExpression(txtNotice.Text, "/i")), new BsonDocument("exemplaires.codeBarre", txtNotice.Text) ) ).Limit(100); if (cursor != null) { var tmp = cursor.ToList(); dgvResultNotice.DataSource = tmp; lblResult.Text = $"{tmp.Count} réponse(s)"; } else { lblResult.Text = "Aucune réponse"; } dgvResultNotice.AutoResizeColumns(); txtNotice.SelectAll(); }
private void GestionAjout(List <Notice> list) { if (list == null || list.Count == 0) { MessageBox.Show("Pas de réponse"); } else { var coll = new MongoDB.Driver.MongoClient(Properties.Settings.Default.MongoDB).GetDatabase("wfBiblio").GetCollection <Notice>("Notice"); if (list.Count == 1) { // L'exemplaire est-il déjà en base? long exist = coll.Find(Builders <Notice> .Filter.Eq(a => a.isbn, list[0].isbn)).CountDocuments(); if (exist > 0) { MessageBox.Show($"Cette notice avec l'ISBN {list[0].isbn} existe déjà."); } else { ctrlNotices1.SetNotice(list[0]); } } else { using (frmResultSearch frs = new frmResultSearch()) { frs.Init(list); if (frs.ShowDialog() == DialogResult.OK) { // L'exemplaire est-il déjà en base? long exist = coll.Find(Builders <Notice> .Filter.Eq(a => a.isbn, list[frs.m_notice].isbn)).CountDocuments(); if (exist > 0) { MessageBox.Show($"Cette notice avec l'ISBN {list[frs.m_notice].isbn} existe déjà."); } else { ctrlNotices1.SetNotice(list[frs.m_notice]); } } } } } }
private void LoadDesherbage() { var collDesherbage = new MongoDB.Driver.MongoClient(Properties.Settings.Default.MongoDB).GetDatabase("wfBiblio").GetCollection <Desherbage>("Desherbage"); var l = collDesherbage.Find(_ => true).SortByDescending(bson => bson.dt).ToList(); dgvDesherbage.DataSource = l; dgvDesherbage.AutoResizeColumns(); dgvDesherbage.Columns["_id"].Visible = false; dgvDesherbage.Columns["idNotice"].Visible = false; }
public List <Emprunt> TrouverEmprunt() { var collEmprunt = new MongoDB.Driver.MongoClient(Properties.Settings.Default.MongoDB).GetDatabase("wfBiblio").GetCollection <Emprunt>("Emprunt"); return(collEmprunt.Find( Builders <Emprunt> .Filter.And( Builders <Emprunt> .Filter.Eq(a => a.idLecteur, _id), Builders <Emprunt> .Filter.Eq(a => a.etat, 1) ) ).ToList()); }
private void btnOK_Click(object sender, EventArgs e) { // Ajouter ou supprimer un exemplaire 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 <Notice> tmp = collNotice.Find(new BsonDocument("exemplaires.codeBarre", txtNewExplaire.Text)).ToList(); if (tmp != null && tmp.Count == 1) { // Cet exemplaire est-il disponible? List <Emprunt> emprunts = collEmprunt.Find( Builders <Emprunt> .Filter.And( Builders <Emprunt> .Filter.Eq(a => a.IdExemplaire, tmp[0].exemplaires.Find(a => a.codeBarre == txtNewExplaire.Text)._id), Builders <Emprunt> .Filter.Eq(a => a.etat, 1) ) ).ToList(); if (emprunts == null || emprunts.Count == 0) { // L'ajouter pour ce lecteur Emprunt emprunt = new Emprunt() { idLecteur = m_lecteurId, IdExemplaire = tmp[0].exemplaires.Find(a => a.codeBarre == txtNewExplaire.Text)._id, etat = 1, dateEmprunt = DateTime.Now, dateRetourPrévue = DateTime.Now.AddDays(21) }; collEmprunt.InsertOne(emprunt); FillPrêts(); } else if (emprunts.Count > 0) { // Est-ce le lecteur en cours if (emprunts[0].idLecteur == m_lecteurId) { // Le supprimer de la liste des emprunts de ce lecteur 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 { // Retrouver le lecteur LecteurResult lr = Lecteur.TrouverLecteurParId(emprunts[0].idLecteur); if (lr != null) { MessageBox.Show($"Ce document est déjà emprunté par {lr.infoLecteur.nom} {lr.infoLecteur.prénom} ({lr.lecteur.titre})"); } } } } txtNewExplaire.SelectAll(); }
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); } } }
public static async Task<RecordModel> FindById(int id) { RecordModel retval; try { var db = new MongoClient(ConfigurationManager.AppSettings["Mongo"]).GetDatabase("interview").GetCollection<RecordModel>("records_miker"); retval = await db.Find(m => m.Id == id).SingleOrDefaultAsync(); } catch (Exception ex) { throw new Exception(string.Format("Something went wrong: {0}", ex.Message)); } return retval; }
public static async Task<IEnumerable<RecordModel>> WaitingForParts() { List<RecordModel> retval = new List<RecordModel>(); try { var db = new MongoClient(ConfigurationManager.AppSettings["Mongo"]).GetDatabase("interview").GetCollection<RecordModel>("records_miker"); retval = await db.Find(m => m.Id != 0).ToListAsync(); } catch (Exception ex) { throw new Exception(string.Format("Something went wrong: {0}", ex.Message)); } return retval; }
private void btnCirculation_Click(object sender, EventArgs e) { 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"); // Chercher lecteur ou exemplaire emprunté if (txtSearchCirculation.Text.All(char.IsDigit)) { List <Notice> tmp = collNotice.Find(new BsonDocument("exemplaires.codeBarre", txtSearchCirculation.Text)).ToList(); if (tmp != null) { if (tmp.Count == 1) { Exemplaire exemplaire = tmp[0].exemplaires.Find(a => a.codeBarre == txtSearchCirculation.Text); if (exemplaire != null) { // Retrouver le lecteur concerné List <Emprunt> tmp2 = collEmprunt.Find( Builders <Emprunt> .Filter.And( Builders <Emprunt> .Filter.Eq(a => a.IdExemplaire, exemplaire._id), Builders <Emprunt> .Filter.Eq(a => a.etat, 1)) ).ToList(); if (tmp2 != null && tmp2.Count > 0) { AffichageLecteur(Lecteur.TrouverLecteurParId(tmp2[0].idLecteur)); } } else { MessageBox.Show("Erreur interne 1"); } } else { MessageBox.Show("Il existe plusieurs exemplaires ce qui est anormal"); } } else { MessageBox.Show("Cet exemplaire n'existe pas"); } } else { // Cherche le lecteur List <LecteurResult> lr = Lecteur.TrouverLecteursParSearch(txtSearchCirculation.Text); if (lr.Count > 0) { if (lr.Count == 1) { AffichageLecteur(lr[0]); } else { ctrlChoixLecteur choix = new ctrlChoixLecteur() { Dock = DockStyle.Fill }; choix.Init(lr); choix.ChoixLecteurEvent += Choix_ChoixLecteurEvent; pnlCirculation.Controls.Clear(); pnlCirculation.Controls.Add(choix); } } else { pnlCirculation.Controls.Clear(); MessageBox.Show("Pas de lecteur à ce nom"); } } txtSearchCirculation.SelectAll(); }