Exemple #1
0
        public Notice Enregistrer()
        {
            Notice notice = GetNotice();

            if (notice != null)
            {
                if (notice.exemplaires == null)
                {
                    notice.exemplaires = new List <Exemplaire>();
                }
                //if (notice.exemplaires.Count == 0)
                //    notice.exemplaires.Add(new Exemplaire() { _id = MongoDB.Bson.ObjectId.GenerateNewId(), codeBarre = notice.isbn, localisation = Properties.Settings.Default.Localisation });

                var coll = new MongoDB.Driver.MongoClient(Properties.Settings.Default.MongoDB).GetDatabase("wfBiblio").GetCollection <Notice>("Notice");
                if (notice._id == ObjectId.Empty)
                {
                    coll.InsertOne(notice);
                }
                else
                {
                    coll.ReplaceOne(a => a._id == notice._id, notice, new ReplaceOptions()
                    {
                        IsUpsert = true
                    });
                }
                if (desherbages.Count > 0)
                {
                    var coll2 = new MongoDB.Driver.MongoClient(Properties.Settings.Default.MongoDB).GetDatabase("wfBiblio").GetCollection <Desherbage>("Desherbage");
                    coll2.InsertMany(desherbages);
                    desherbages.Clear();
                }
            }
            return(notice);
        }
Exemple #2
0
        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();
        }