예제 #1
0
        /// <summary>
        /// PErmet d'inserez des livres dans la liseuse
        /// </summary>
        /// <param name="livres"></param>
        /// <returns>Renvoie les livres qui ne sont pas entré dans la liseuse</returns>
        public string[] ExportLivre(Livres[] livres)
        {
            FRM_LoadingLiseuse ll = new FRM_LoadingLiseuse(livres.Length);

            ll.Phrase = "Envoie des livres vers la liseuse";
            List <string> tmp = new List <string>();

            try
            {
                ll.Show();
                foreach (Livres livre in livres)
                {
                    _isbusy = true;
                    try
                    {
                        File.Copy(livre.full_chemin_livre, Lecteur.ToString() + @":\" + livre.FileName);
                        MessageBox.Show("fait");
                    }
                    catch (Exception e)
                    {
                        tmp.Add(livre.titre);
                        ExceptionHandler.ExeptionCatch(e);
                    }
                    ll.pas();
                }
                ll.Close();
                _isbusy = false;
            }
            catch (Exception e)
            {
                _isbusy = false;
                ExceptionHandler.ExeptionCatch(e);
            }
            return(tmp.ToArray());
        }
예제 #2
0
        private void comparaisonComplete(object sender, RunWorkerCompletedEventArgs e)
        {
            //a finir
            DialogResult         result = fRM_DialogueTransfert.ShowDialog();
            List <Liseuse.Livre> livres = new List <Liseuse.Livre>();

            switch (result)
            {
            case DialogResult.OK:
                foreach (object obj in fRM_DialogueTransfert.LB_Livres.SelectedItems)
                {
                    livres.Add((Liseuse.Livre)obj);
                }
                break;

            case DialogResult.Yes:
                foreach (object obj in fRM_DialogueTransfert.LB_Livres.Items)
                {
                    livres.Add((Liseuse.Livre)obj);
                }
                break;

            case DialogResult.Abort: break;

            case DialogResult.Cancel: break;

            default: break;
            }
            if (livres.Count > 0)
            {
                FRM_LoadingLiseuse ll = new FRM_LoadingLiseuse(livres.Count);
                ll.Phrase = "Importation des livres dans la bibliothèque";
                ll.Show();
                foreach (Liseuse.Livre livre in livres)
                {
                    try
                    {
                        ClassAjout.AjoutEpub(livre.PATH, livre.FileName, biblio);
                    }
                    catch (Exception exc)
                    {
                        ExceptionHandler.ExeptionCatch(exc);
                    }
                    ll.pas();
                }
                ll.Close();
                AfficheLesEnregistrementsEpub();
            }
        }
예제 #3
0
        /// <summary>
        /// Transforme les données livres de la base de données en données de la liseuse en objet livre dans la collection de Bibliothèque
        /// </summary>
        private void GetLivres()
        {
            Livre tmp;

            try
            {
                if (connexionLiseuse.OuvrirBDD())
                {
                    _isbusy = true;
                    //Declaration et initialisation
                    FRM_LoadingLiseuse loading = new FRM_LoadingLiseuse();
                    SQLiteDataReader   SQLDrLivre;

                    //Affiche la fenetre de chargement
                    loading.Show();
                    //Obtient tout les livres de la liseuse
                    SQLiteDataReader SQLDr = connexionLiseuse.Extraction(
                        "SELECT BookTitle FROM content WHERE MimeType = 'application/epub+zip' AND BookTitle IS NOT NULL GROUP BY BookTitle");

                    //Obtient le nombre de livre dans la liseuse
                    SQLDrLivre = connexionLiseuse.Extraction("SELECT COUNT(*) FROM (SELECT BookTitle FROM content WHERE MimeType = 'application/epub+zip' AND BookTitle IS NOT NULL GROUP BY BookTitle) AS LIVRE");


                    //Modifie le maximum de la progress bar
                    if (SQLDrLivre.Read())
                    {
                        loading.PB_bar.Maximum = SQLDrLivre.GetInt32(0) + 1;
                    }

                    //Retourne une erreure si la donnée n'est pas lisible
                    else
                    {
                        throw new Exception("Erreur BDD nombre de livre");
                    }

                    SQLDrLivre.Close();


                    if (SQLDr != null)
                    {
                        //Boucle d'ajout des livres
                        while (SQLDr.Read())
                        {
                            loading.pas();
                            SQLDrLivre = connexionLiseuse.Extraction("SELECT ContentID FROM content WHERE BookTitle LIKE '" + Apostrophe((string)SQLDr[0]) + "'");

                            SQLDrLivre.Read();
                            try
                            {
                                tmp = new Livre((string)SQLDr["BookTitle"], PathLivreFromID((string)SQLDrLivre["ContentID"]), Lecteur);

                                //Ajout d'un livre dans la bibliothèque
                                Biblioteque.Add(tmp);
                            }
                            catch (Exception e)
                            {
                                ExceptionHandler.Message("Erreur sur le livre : " + (string)SQLDr[0]);
                                ExceptionHandler.ExeptionCatch(e);
                            }
                            SQLDrLivre.Close();
                        }
                        SQLDr.Close();
                    }
                    loading.Close();
                    connexionLiseuse.FermerBDD();
                    _isbusy = false;
                }
            }
            catch (Exception e)
            {
                ExceptionHandler.ExeptionCatch(e);
            }
        }