Esempio n. 1
0
        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);
                }
            }
        }
Esempio n. 2
0
        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();
        }
Esempio n. 3
0
        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();
        }
Esempio n. 4
0
 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]);
                     }
                 }
             }
         }
     }
 }
Esempio n. 5
0
        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;
        }
Esempio n. 6
0
        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());
        }
Esempio n. 7
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();
        }
Esempio n. 8
0
        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);
                }
            }
        }
Esempio n. 9
0
        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;
        }
Esempio n. 10
0
        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;
        }
Esempio n. 11
0
        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();
        }