// List<Emprunt> TrouverEmpruntLecteur private void btnListeEmprunts_Click(object sender, EventArgs ea) { if (saveFileDialog1.ShowDialog() == DialogResult.OK) { using (StreamWriter sw = new StreamWriter(saveFileDialog1.FileName, false, Encoding.Default)) { sw.WriteLine("Groupe;Nom;Prénom;Titre;Auteur;Date Emprunt;Date Retour;Exemplaire"); var db = new MongoDB.Driver.MongoClient(Properties.Settings.Default.MongoDB).GetDatabase("wfBiblio"); var collNotice = db.GetCollection <Notice>("Notice"); lecteurBindingSource.EndEdit(); Lecteur lecteur = ((List <Lecteur>)lecteurBindingSource.DataSource)[0]; foreach (InfoLecteur il in db.GetCollection <InfoLecteur>("InfoLecteur").Find(a => a.lecteurId == lecteur._id).ToList()) { foreach (Emprunt emprunt in il.TrouverEmprunt()) { List <Notice> tmp = collNotice.Find(new BsonDocument("exemplaires._id", emprunt.IdExemplaire)).ToList(); if (tmp != null && tmp.Count > 0) { Exemplaire ex = tmp[0].exemplaires.Find(a => a._id == emprunt.IdExemplaire); sw.WriteLine($"{lecteur.titre};{il.nom};{il.prénom};{tmp[0].titre};{tmp[0].auteur};{emprunt.dateEmprunt.ToString("dd/MM/yyyy")};{emprunt.dateRetourPrévue.ToString("dd/MM/yyyy")};'{ex.codeBarre}"); } } } } System.Diagnostics.Process.Start("explorer.exe", "/select,\"" + saveFileDialog1.FileName + "\""); } }
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); }
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; } }
private void btnOK_Click(object sender, EventArgs e) { lecteurBindingSource.EndEdit(); infoLecteurBindingSource.EndEdit(); var db = new MongoDB.Driver.MongoClient(Properties.Settings.Default.MongoDB).GetDatabase("wfBiblio"); Lecteur lecteur = ((List <Lecteur>)lecteurBindingSource.DataSource)[0]; lecteur.localisation = Properties.Settings.Default.Localisation; var ops = new UpdateOptions { IsUpsert = true }; db.GetCollection <Lecteur>("Lecteur").ReplaceOne(x => x._id == lecteur._id, lecteur, ops); foreach (InfoLecteur il in (List <InfoLecteur>)infoLecteurBindingSource.DataSource) { il.localisation = Properties.Settings.Default.Localisation; il.lecteurId = lecteur._id; db.GetCollection <InfoLecteur>("InfoLecteur").ReplaceOne(x => x._id == il._id, il, ops); } }
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(); }
public static void Importer() { var lines = Csv.CsvReader.ReadFromStream(new System.IO.StreamReader(@"I:\Dropbox\Public\Mediathèque2000\Cocteau\biblio.csv", Encoding.UTF8).BaseStream); var collNotice = new MongoDB.Driver.MongoClient(Properties.Settings.Default.MongoDB).GetDatabase("wfBiblio").GetCollection <Notice>("Notice"); foreach (var line in lines) { string isbn = ""; try { isbn = line["ISBN"]; } catch { try { isbn = line["ISSN"]; } catch { } } Notice notice = new Notice() { titre = line["Titre"], auteur = line["Auteur"], éditeur = line["Editeur"], année = line["Annee d'edition"], dateAchat = line["Date d'achat"], collection = line["Collection"], isbn = isbn, @public = line["Public"], exemplaires = new List <Exemplaire>() { new Exemplaire() { _id = MongoDB.Bson.ObjectId.GenerateNewId(), localisation = Properties.Settings.Default.Localisation, codeBarre = isbn } } }; collNotice.InsertOne(notice); } lines = Csv.CsvReader.ReadFromStream(new System.IO.StreamReader(@"I:\Dropbox\Public\Mediathèque2000\Cocteau\adhérents.csv", Encoding.UTF8).BaseStream); var db = new MongoDB.Driver.MongoClient(Properties.Settings.Default.MongoDB).GetDatabase("wfBiblio"); Dictionary <string, List <InfoLecteur> > tmp = new Dictionary <string, List <InfoLecteur> >(); Dictionary <string, Lecteur> lecteurs = new Dictionary <string, Lecteur>(); foreach (var line in lines) { string Codefamille = line["Codefamille"]; if (Codefamille.StartsWith("Calmette")) { if (!lecteurs.ContainsKey(Codefamille)) { lecteurs[Codefamille] = new Lecteur() { titre = line["Codefamille"], adresse = line["No"] + " " + line["Rue"], codePostal = line["Code"], ville = line["Ville"], téléphone = line["Tel Pers"], mail = line["Email"], débutAdhésion = DateTime.Now, finAdhésion = DateTime.Now.AddYears(1), localisation = Properties.Settings.Default.Localisation } } ; if (!tmp.ContainsKey(Codefamille)) { tmp[Codefamille] = new List <InfoLecteur>(); } tmp[Codefamille].Add( new InfoLecteur() { nom = line["Nom"], prénom = line["Prenom"], localisation = Properties.Settings.Default.Localisation } ); } else { Lecteur lecteur = new Lecteur() { titre = line["Codefamille"], adresse = line["No"] + " " + line["Rue"], codePostal = line["Code"], ville = line["Ville"], téléphone = line["Tel Pers"], mail = line["Email"], débutAdhésion = DateTime.Now, finAdhésion = DateTime.Now.AddYears(1), localisation = Properties.Settings.Default.Localisation }; db.GetCollection <Lecteur>("Lecteur").InsertOne(lecteur); InfoLecteur infoLecteur = new InfoLecteur() { lecteurId = lecteur._id, nom = line["Nom"], prénom = line["Prenom"], localisation = Properties.Settings.Default.Localisation }; db.GetCollection <InfoLecteur>("InfoLecteur").InsertOne(infoLecteur); } } foreach (var key in lecteurs) { db.GetCollection <Lecteur>("Lecteur").InsertOne(key.Value); foreach (InfoLecteur il in tmp[key.Key]) { il.lecteurId = key.Value._id; db.GetCollection <InfoLecteur>("InfoLecteur").InsertOne(il); } } } }
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(); }