/// <summary> /// Renvoie la liste d'animes de la base de données /// </summary> /// <param name="dbFile">le fichier de base de données</param> /// <returns>Une instance de AnimeModel avec tous les animes de la base de données</returns> private static AnimeModel getAll(string dbFile) { try { SQLiteConnection cnx; SQLiteCommand cmd; SQLiteDataReader reader; AnimeModel all = new AnimeModel(); all.file = dbFile; cnx = new SQLiteConnection("Data Source=" + dbFile + "; Version=3"); string sqlStmnt = "SELECT a.name, a.season, a.studio, r.fansubs, a.year, r.episodes, r.language, r.sub, a.synopsis, a.type, r.path FROM anime AS a JOIN release AS r ON a.name = r.name AND a.season = r.season"; cnx.Open(); cmd = new SQLiteCommand(sqlStmnt, cnx); reader = cmd.ExecuteReader(); while (reader.Read()) { all.Add(new Anime(reader.GetString(0), reader.GetString(1), reader.GetString(2), reader.GetString(3), reader.GetInt32(4), reader.GetInt32(5), reader.GetString(6), reader.GetString(7), reader.GetString(8), reader.GetString(9), reader.GetString(10))); } reader.Close(); cnx.Close(); if (all.Count == 0) { all.Add((new AnimeModel()).FAKE_ANIME); } //MessageBox.Show(all.Count.ToString()); return(all); } catch (Exception e) { Helper.ShowError(e); return(null); } }
public AnimeModel get(Anime a) { AnimeModel filtered = new AnimeModel(); foreach (Anime b in this) { if (b.Name.Contains(a.Name) && a.Name.Length != 0 || b.Type.Contains(a.Type) && a.Type.Length != 0 || b.Language.Contains(a.Language) && a.Language.Length != 0 || b.Sub.Contains(a.Sub) && a.Sub.Length != 0 || a.Name.Length == 0 && a.Type.Length == 0 && a.Language.Length == 0 && a.Sub.Length == 0) { filtered.Add(b); //MessageBox.Show(b.toString()); } } if (filtered.Count == 0) { filtered.Add(FAKE_ANIME); } //MessageBox.Show(filtered.Count.ToString()); return(filtered); }
/// <summary> /// Récuperation de toutes les données de la base de données. Si il n'existe pas de bases de données, elle sera créée. /// </summary> /// <param name="dbFolder">Le dossier de création de la base de données</param> /// <returns>Une liste d'animes</returns> public static AnimeModel getInstance(string dbFolder) { if (dbFolder == "") { AnimeModel a = new AnimeModel(); a.Add(a.FAKE_ANIME); return(a); } string dbPath = Path.Combine(dbFolder, DB_FILE); if (!File.Exists(dbPath)) { createDB(dbPath); // TODO : Verifier si on peut ecrire dans le dossier courant, si oui, db file = anime.sqlite sinon le appdata // Faire la verification pour savoir si les fhichiers sont les memes // Copier dans appdata si n'existe pas. Utiliser le local en priorite } return(getAll(dbPath)); }