public static List <LecteurResult> TrouverLecteursParGroupe(InfoLecteur ilParent) { List <LecteurResult> result = new List <LecteurResult>(); var db = new MongoDB.Driver.MongoClient(Properties.Settings.Default.MongoDB).GetDatabase("wfBiblio"); foreach (InfoLecteur il in db.GetCollection <InfoLecteur>("InfoLecteur").Find(a => a.lecteurId == ilParent.lecteurId).ToList()) { if (!il.deleted) { LecteurResult lr = new LecteurResult() { infoLecteur = il, lecteur = db.GetCollection <Lecteur>("Lecteur").Find(a => a._id == il.lecteurId).FirstOrDefault() }; result.Add(lr); } } result.Sort((a, b) => { if (a.infoLecteur.nom.ToLower() != b.infoLecteur.nom.ToLower()) { return(a.infoLecteur.nom.ToLower().CompareTo(b.infoLecteur.nom.ToLower())); } else { return(a.infoLecteur.prénom.ToLower().CompareTo(b.infoLecteur.prénom.ToLower())); } }); return(result); }
public void Init(LecteurResult lecteur) { m_lecteur = lecteur; llGroupe.Text = lecteur.lecteur.titre; lblNom.Text = lecteur.infoLecteur.nom; lblPrenom.Text = lecteur.infoLecteur.prénom; FillPrêts(); timer1.Start(); }
public static List <LecteurResult> TrouverLecteursParSearch(string search) { List <LecteurResult> result = new List <LecteurResult>(); var db = new MongoDB.Driver.MongoClient(Properties.Settings.Default.MongoDB).GetDatabase("wfBiblio"); var s = new MongoDB.Bson.BsonRegularExpression(search, "/i"); foreach (InfoLecteur il in db.GetCollection <InfoLecteur>("InfoLecteur").Find( Builders <InfoLecteur> .Filter.And( Builders <InfoLecteur> .Filter.Eq(a => a.localisation, Properties.Settings.Default.Localisation), Builders <InfoLecteur> .Filter.Eq(a => a.deleted, false), Builders <InfoLecteur> .Filter.Or( Builders <InfoLecteur> .Filter.Regex(a => a.nom, s), Builders <InfoLecteur> .Filter.Regex(a => a.prénom, s), Builders <InfoLecteur> .Filter.Regex(a => a.commentaires, s) ) ) ).ToList()) { LecteurResult lr = new LecteurResult() { infoLecteur = il, lecteur = db.GetCollection <Lecteur>("Lecteur").Find(a => a._id == il.lecteurId).FirstOrDefault() }; result.Add(lr); } // Rechercher par titre foreach (Lecteur lecteur in db.GetCollection <Lecteur>("Lecteur").Find(Builders <Lecteur> .Filter.Regex(a => a.titre, s)).ToList()) { foreach (InfoLecteur il in db.GetCollection <InfoLecteur>("InfoLecteur").Find(a => a.lecteurId == lecteur._id).ToList()) { if (il.deleted == false && result.Find(a => a.infoLecteur._id == il._id) == null) { result.Add(new LecteurResult() { infoLecteur = il, lecteur = lecteur }); } } } result.Sort((a, b) => { a.infoLecteur.nom = a.infoLecteur.nom ?? ""; b.infoLecteur.nom = b.infoLecteur.nom ?? ""; if (a.infoLecteur.nom.ToLower() != b.infoLecteur.nom.ToLower()) { return(a.infoLecteur.nom.ToLower().CompareTo(b.infoLecteur.nom.ToLower())); } else { return(a.infoLecteur.prénom.ToLower().CompareTo(b.infoLecteur.prénom.ToLower())); } }); return(result); }
public void Init(ObjectId lecteurId) { m_lecteurId = lecteurId; LecteurResult lr = Lecteur.TrouverLecteurParId(lecteurId); lblNom.Text = lr.infoLecteur.nom; lblPrenom.Text = lr.infoLecteur.prénom; lblTitre.Text = lr.lecteur.titre; FillPrêts(); timer1.Start(); }
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 Circ_AfficherGroupeEvent(LecteurResult lr) { // Retrouver les membres du groupe ctrlChoixLecteur choix = new ctrlChoixLecteur() { Dock = DockStyle.Fill }; choix.Init(Lecteur.TrouverLecteursParGroupe(lr.infoLecteur)); choix.ChoixLecteurEvent += Choix_ChoixLecteurEvent; pnlCirculation.Controls.Clear(); pnlCirculation.Controls.Add(choix); }
private void AffichageLecteur(LecteurResult lecteur) { ctrlCirculation circ = new ctrlCirculation() { Dock = DockStyle.Fill }; circ.Init(lecteur); circ.AfficherGroupeEvent += Circ_AfficherGroupeEvent; circ.RafraichirRecherche = () => { btnCirculation_Click(null, null); }; pnlCirculation.Controls.Clear(); pnlCirculation.Controls.Add(circ); }
public static LecteurResult TrouverLecteurParId(ObjectId id) { var db = new MongoDB.Driver.MongoClient(Properties.Settings.Default.MongoDB).GetDatabase("wfBiblio"); LecteurResult result = new LecteurResult() { infoLecteur = db.GetCollection <InfoLecteur>("InfoLecteur").Find(a => a._id == id /*&& a.deleted == false*/).FirstOrDefault() }; if (result.infoLecteur != null) { result.lecteur = db.GetCollection <Lecteur>("Lecteur").Find(a => a._id == result.infoLecteur.lecteurId /*&& a.deleted == false*/).FirstOrDefault(); } return(result); }
public static LecteurResult TrouverLecteurParId(ObjectId id) { var db = new MongoDB.Driver.MongoClient(Properties.Settings.Default.MongoDB).GetDatabase("wfBiblio"); LecteurResult result = new LecteurResult() { infoLecteur = db.GetCollection <InfoLecteur>("InfoLecteur").Find(Builders <InfoLecteur> .Filter.Eq(a => a._id, id)).FirstOrDefault() }; if (result.infoLecteur != null) { result.lecteur = db.GetCollection <Lecteur>("Lecteur").Find(Builders <Lecteur> .Filter.Eq(a => a._id, result.infoLecteur.lecteurId)).FirstOrDefault(); } return(result); }
public void Init(ObjectId lecteur) { LecteurResult lr = Lecteur.TrouverLecteurParId(lecteur); if (lr != null) { var db = new MongoDB.Driver.MongoClient(Properties.Settings.Default.MongoDB).GetDatabase("wfBiblio"); infoLecteurBindingSource.DataSource = db.GetCollection <InfoLecteur>("InfoLecteur").Find(a => a.lecteurId == lr.lecteur._id).ToList(); lecteurBindingSource.DataSource = new List <Lecteur>() { lr.lecteur }; lecteurBindingSource.Position = 0; } }
public void Init(LecteurResult lr) { m_lr = lr; RefreshLecteursList(); lecteurBindingSource.DataSource = new List <Lecteur>() { lr.lecteur }; lecteurBindingSource.Position = 0; var db = new MongoDB.Driver.MongoClient(Properties.Settings.Default.MongoDB).GetDatabase("wfBiblio"); titreComboBox.DataSource = db.GetCollection <Lecteur>("Lecteur").Distinct <string>("titre", "{}").ToList(); villeComboBox.DataSource = db.GetCollection <Lecteur>("Lecteur").Distinct <string>("ville", "{}").ToList(); codePostalComboBox.DataSource = db.GetCollection <Lecteur>("Lecteur").Distinct <string>("codePostal", "{}").ToList(); }
private void btnOK_Click(object sender, EventArgs e) { // Ajouter ou supprimer un exemplaire var collNotice = new MongoClient(Properties.Settings.Default.MongoDB).GetDatabase("wfBiblio").GetCollection <Notice>("Notice"); var collEmprunt = new 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_lecteur.infoLecteur._id, 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_lecteur.infoLecteur._id) { // 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})"); } } } } else if (tmp.Count != null && tmp.Count > 1) { MessageBox.Show($"Ce code exemplaire existe {tmp.Count} fois.\r\nCorrigez la base"); } else { if (MessageBox.Show("Ce code exemplaire n'existe pas.\r\nVoulez-vous quand même le prêter et l'ajouter à l'inventaire plus tard ?", "Erreur", MessageBoxButtons.YesNo) == DialogResult.Yes) { Emprunt emprunt = new Emprunt() { idLecteur = m_lecteur.infoLecteur._id, //IdExemplaire = tmp[0].exemplaires.Find(a => a.codeBarre == txtNewExplaire.Text)._id, etat = 1, dateEmprunt = DateTime.Now, dateRetourPrévue = DateTime.Now.AddDays(21) }; Notice notice = new Notice() { isbn = txtNewExplaire.Text, indexes = new BsonDocument("ajouterLecteur", emprunt.ToBsonDocument()).Add("Status", ctrlAttente.A_TRAITER) }; new MongoClient(Properties.Settings.Default.MongoDB).GetDatabase("wfBiblio").GetCollection <Notice>("NoticeAttente").InsertOne(notice); } } txtNewExplaire.SelectAll(); }
private void Choix_ChoixLecteurEvent(LecteurResult lecteur) { AffichageLecteur(lecteur); }