private void ShowSaved() { imageListView1.ShowCheckBoxes = false; var db = new SqLiteDatabase(); var query = "SELECT * FROM arts_" + _seriesId; try { var dt = db.GetDataTable(query); imageListView1.Items.Clear(); for (var i = 0; i < dt.Rows.Count; i++) { DataRow drow = dt.Rows[i]; var img1 = new ImageListViewItem {FileName = @drow["image"].ToString()}; imageListView1.Items.AddRange(new[] { img1 }); } } catch(Exception e){ Console.WriteLine(e.Message); var createTable = "CREATE TABLE " + "arts_" + _seriesId + "(" + "_id" + " INTEGER PRIMARY KEY," + "image" + " TEXT" + ")"; var adb = new ArtsDatabaseEntry( "res/" + _seriesName + "_banner.jpg"); var adb2 = new ArtsDatabaseEntry("res/" + _seriesName + "_poster.jpg"); var adb3 = new ArtsDatabaseEntry( "res/" + _seriesName + "_fanart.jpg"); try { db.CreateTable(createTable); db.InsertArts(adb, "arts_" + _seriesId); db.InsertArts(adb2, "arts_" + _seriesId); db.InsertArts(adb3, "arts_" + _seriesId); ShowSaved(); } catch (Exception crap) { MessageBox.Show(crap.Message); } } }
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) { var sName = ""; var worker = sender as BackgroundWorker; //Step1 Create temp directory if doesnt exists if(!Directory.Exists("temp")) { Directory.CreateDirectory("temp"); } if (!Directory.Exists("res")) { Directory.CreateDirectory("res"); } //Step2 Download series info zip file worker.ReportProgress(15); var client = new WebClient(); client.DownloadFile("http://thetvdb.com/api/" + Constants.ApiKey + "/series/" + _selectedItem.GetSeriesId() + "/all/" + _selectedItem.GetLang() + ".zip", @"temp/tmp.zip"); //Step3 Extract xmls worker.ReportProgress(30); using (var zip = ZipFile.Read("temp/tmp.zip")) { zip.ExtractAll("temp/"); } //Step4 Add series information to database worker.ReportProgress(45); var doc = XDocument.Load("temp/en.xml"); var names = from ele in doc.Descendants("Series") select new { seriesName = (string)ele.Element("SeriesName"), overview = (string)ele.Element("Overview"), lang = (string)ele.Element("Language"), id = (int)ele.Element("id"), firstAired = (string)ele.Element("FirstAired"), imdbId = (string)ele.Element("IMDB_ID"), network = (string)ele.Element("Network"), rating = (double)ele.Element("Rating"), runtime = (int)ele.Element("Runtime"), status = (string)ele.Element("Status"), banner = (string)ele.Element("banner"), fanart = (string)ele.Element("fanart"), poster = (string)ele.Element("poster") }; foreach (var n in names) { client.DownloadFile("http://thetvdb.com/banners/"+n.banner, @"res/"+n.seriesName+"_banner.jpg"); client.DownloadFile("http://thetvdb.com/banners/" + n.fanart, @"res/" + n.seriesName + "_fanart.jpg"); client.DownloadFile("http://thetvdb.com/banners/" + n.poster, @"res/" + n.seriesName + "_poster.jpg"); var sdb = new SeriesDatabaseEntry(n.seriesName, n.firstAired, n.imdbId, n.overview, n.rating, n.id, n.lang, "res/" + n.seriesName + "_banner.jpg", "http://thetvdb.com/banners/" + n.banner, "res/" + n.seriesName + "_poster.jpg", "http://thetvdb.com/banners/" + n.poster, "res/" + n.seriesName + "_fanart.jpg", "http://thetvdb.com/banners/" + n.fanart, n.network, n.runtime, n.status, false, false, DateTime.Now.ToString()); sName = n.id.ToString(); CreateArtsTable(sName); var adb = new ArtsDatabaseEntry( "res/" + n.seriesName + "_banner.jpg"); var adb2 = new ArtsDatabaseEntry("res/" + n.seriesName + "_poster.jpg"); var adb3 = new ArtsDatabaseEntry( "res/" + n.seriesName + "_fanart.jpg"); try { _db.InsertSeries(sdb); } catch (Exception crap) { MessageBox.Show(crap.Message); } try { _db.InsertArts(adb, "arts_"+sName); _db.InsertArts(adb2, "arts_" + sName); _db.InsertArts(adb3, "arts_" + sName); } catch (Exception crap) { MessageBox.Show(crap.Message); } } //Step5 Create table for episodes worker.ReportProgress(60); CreateEpisodesTable(sName); //Step6 Add episodes info to database worker.ReportProgress(75); // var names = doc.Descendants("Series"); var names1 = from ele in doc.Descendants("Episode") select new { episodeName = (string)ele.Element("EpisodeName") ?? string.Empty, episode = (int)ele.Element("EpisodeNumber") , season = (int)ele.Element("SeasonNumber"), firstAired = (string)ele.Element("FirstAired") ?? string.Empty, imdbId = (string)ele.Element("IMDB_ID") ?? string.Empty, overview = (string)ele.Element("Overview") ?? string.Empty, rating = getRating(ele), episodeId = (int)ele.Element("id") }; foreach (var edb in names1.Select(n => new EpisodeDatabaseEntry(n.episodeName, n.episode, n.season, n.rating, n.firstAired, n.imdbId, n.overview, false, n.episodeId))) { try { _db.InsertEpisode("episodes_"+sName, edb); } catch (Exception crap) { MessageBox.Show(crap.Message); } } //Step7 dELETE temp folder worker.ReportProgress(90); Directory.Delete(@"temp", true); worker.ReportProgress(100); }
public int InsertArts(ArtsDatabaseEntry series, string tableName) { var cnn = new SQLiteConnection(_dbConnection); cnn.Open(); var mycommand = new SQLiteCommand(cnn) { CommandText = "INSERT INTO " + tableName + " (image) VALUES(@image);", CommandType = CommandType.Text }; mycommand.Parameters.Add(new SQLiteParameter("@image", series.BannerLocal)); var rowsUpdated = mycommand.ExecuteNonQuery(); cnn.Close(); return rowsUpdated; }