public FilmViewer(Film filminfo) { this.InitializeComponent(); RecTitleBar.MouseDown +=new System.Windows.Input.MouseButtonEventHandler(FilmViewer_MouseDown); mainfilm = filminfo; film_Release.Text = mainfilm.ReleaseYear.ToString(); film_Name.Text = mainfilm.Name; film_Image.Source = mainfilm.Image; film_Plot.Text = mainfilm.Plot; film_Rating.Text = mainfilm.Rating.ToString(); film_Genres.Text = mainfilm.Genres; cmdWatchFilm.MouseEnter +=new System.Windows.Input.MouseEventHandler(cmdWatchFilm_MouseEnter); cmdWatchFilm.MouseLeave +=new System.Windows.Input.MouseEventHandler(cmdWatchFilm_MouseLeave); cmdWatchFilm.Click += new RoutedEventHandler(cmdWatchFilm_Click); cmdUpdateFilm.MouseEnter +=new System.Windows.Input.MouseEventHandler(cmdUpdateFilm_MouseEnter); cmdUpdateFilm.MouseLeave +=new System.Windows.Input.MouseEventHandler(cmdUpdateFilm_MouseLeave); cmdUpdateFilm.Click += new RoutedEventHandler(cmdUpdateFilm_Click); cmdDeleteFilm.MouseEnter += new System.Windows.Input.MouseEventHandler(cmdDeleteFilm_MouseEnter); cmdDeleteFilm.MouseLeave +=new System.Windows.Input.MouseEventHandler(cmdDeleteFilm_MouseLeave); cmdDeleteFilm.Click += new System.Windows.RoutedEventHandler(cmdDeleteFilm_Click); }
void BtAddFilm_Click(object sender, RoutedEventArgs e) { Film fAddFilm = new Film(); fAddFilm.Name = TxBoxName.Text; fAddFilm.Plot = TxBoxStory.Text; fAddFilm.Rating = TxBoxRating.Text; fAddFilm.ReleaseYear = Convert.ToInt16(TxBoxRelease.Text); fAddFilm.Genres = TxBoxGenres.Text; fAddFilm.Image = (BitmapImage)FilmImage.Source; Directory.CreateDirectory(Environment.CurrentDirectory + @"\Movies\" + DatabaseManager.MakeDirectorySafe(fAddFilm.Name)); string directory = System.IO.Path.GetDirectoryName(TxBoxDirectory.Text); string extension = System.IO.Path.GetExtension(TxBoxDirectory.Text); System.Windows.MessageBox.Show("Media Manager will now copy the film file, and any .srt subtitle file found, the program _WILL_ freeze so please wait until a new message box appears."); foreach (string str in Directory.GetFiles(directory)) { if (System.IO.Path.GetExtension(str) == ".srt") { File.Move(str, Environment.CurrentDirectory + @"\Movies\" + DatabaseManager.MakeDirectorySafe(fAddFilm.Name) + @"\" + DatabaseManager.MakeDirectorySafe(fAddFilm.Name) + ".srt"); } } File.Move(TxBoxDirectory.Text, Environment.CurrentDirectory + @"\Movies\" + DatabaseManager.MakeDirectorySafe(fAddFilm.Name) + @"\" + DatabaseManager.MakeDirectorySafe(fAddFilm.Name) + extension); System.Windows.MessageBox.Show("File Copying has completed successfully!"); fAddFilm.Directory = @"\Movies\" + DatabaseManager.MakeDirectorySafe(fAddFilm.Name) + @"\" + DatabaseManager.MakeDirectorySafe(fAddFilm.Name) + extension; DatabaseManager.AddFilm(fAddFilm); TxBoxDirectory.Clear(); TxBoxGenres.Clear(); TxBoxName.Clear(); TxBoxRating.Clear(); TxBoxRelease.Clear(); TxBoxStory.Clear(); FilmImage.Source = null; }
private void BtSearch_Click(object sender, System.Windows.RoutedEventArgs e) { string search = "http://www.imdb.com/find?s=all&q="; //Basic Search Link string temp = TxBoxSearchTerm.Text; //Take search term temp = temp.Replace(" ", "+"); //Remove spaces, replace with '+' search += temp; //Add to end of Base Search Link StringBuilder BaseSearch = GetHtml(search); //Get Basic Search Website string[] links; links = GetLinks(BaseSearch); //Take top 3 links of search page (3 most popular / mentioned) Films = new Film[links.Length]; StringBuilder[] filmsites = new StringBuilder[3]; Parallel.For(0, Films.Length, i => //For each link (each different movie) { filmsites[i] = GetHtml("http://www.imdb.com" + links[i]); //First get the HTML of the film page "filmsite" is now a string of entire website //Use GrabImage function to download picture Films[i] = new Film(); Films[i].Name = rgxFindFilmName.Match(filmsites[i].ToString()).Groups[1].Value; //Find the name of the film in the HTML Films[i].Rating = rgxFindRating.Match(filmsites[i].ToString()).Groups[1].Value; //Find the rating of the film in the HTML if ((rgxFindDate.Match(filmsites[i].ToString()).Groups[1].Value) == string.Empty) { Films[i].ReleaseYear = 1000; } else { Films[i].ReleaseYear = Convert.ToInt32(rgxFindDate.Match(filmsites[i].ToString()).Groups[1].Value); //Find the release year of the film in the HTML } List<string> lsGenres = new List<string>(); //Create a list of genres foreach (Match m in rgxFindGenres.Matches(filmsites[i].ToString())) { lsGenres.Add(m.Groups[1].Value); //Foreach genre found add it to the list } for (int inte = 0; inte < lsGenres.Count; inte++) //For each value item of list { for (int x = 0; x < lsGenres.Count; x++) //For each item of list { if (inte != x) //If the items are not the same index { if (lsGenres[inte] == lsGenres[x]) //If they have equal value, but not equal index { lsGenres.RemoveAt(x); //Remove copy } } } } StringBuilder sbGenres = new StringBuilder(); foreach (string s in lsGenres) { sbGenres.Append(s + " "); } Films[i].Genres = sbGenres.ToString(); Films[i].Plot = rgxFindStoryline.Match(filmsites[i].ToString()).Groups[1].Value; } ); //Fill In Details for (int i = 0; i < Films.Length; i++) { LbNames[i].Content = "Name: " + Films[i].Name; LbRatings[i].Content = "Rating: " + Films[i].Rating; LbReleases[i].Content = "Release: " + Films[i].ReleaseYear; Films[i].Image = new BitmapImage(); Films[i].Image.BeginInit(); } Stream[] ms = new Stream[Films.Length]; Parallel.For(0, Films.Length, i => { string ImageURL = rgxGrabPicture.Match(filmsites[i].ToString()).Groups[1].Value; if (string.IsNullOrEmpty(ImageURL)) { ms[i] = null; } else { WebClient wc = new WebClient(); byte[] pic = wc.DownloadData(ImageURL); ms[i] = new MemoryStream(pic); } } ); for (int i = 0; i < Films.Length; i++) { if (ms[i] == null) { Films[i].Image.UriSource = noimage.UriSource; } else { Films[i].Image.StreamSource = ms[i]; } Films[i].Image.EndInit(); MovImages[i].Source = Films[i].Image; } }
public static void DeleteFilm(Film fFilm) { _cmdDelete.Parameters[0].Value = fFilm.ID; _cmdDelete.ExecuteNonQuery(); }
public static void UpdateFilm(Film fFilm) { try { _cmdUpdate.Parameters[0].Value = fFilm.Name; Stream ms = fFilm.Image.StreamSource; byte[] Image; ms.Seek(0, 0); BinaryReader br = new BinaryReader(ms); Image = br.ReadBytes(Convert.ToInt32(ms.Length)); _cmdUpdate.Parameters[1].Value = Image; _cmdUpdate.Parameters[2].Value = fFilm.Plot; _cmdUpdate.Parameters[3].Value = fFilm.Rating; _cmdUpdate.Parameters[4].Value = fFilm.Genres; _cmdUpdate.Parameters[5].Value = fFilm.ReleaseYear; System.Windows.MessageBox.Show(fFilm.ID.ToString()); _cmdUpdate.Parameters[6].Value = fFilm.ID; _cmdUpdate.ExecuteNonQuery(); } catch (Exception ex) { System.Windows.MessageBox.Show(ex.Message); } }
public static void AddFilm(Film fFilm) { try { _cmdInsert.Parameters[0].Value = fFilm.Name; Stream ms = fFilm.Image.StreamSource; byte[] Image; ms.Seek(0, 0); BinaryReader br = new BinaryReader(ms); Image = br.ReadBytes(Convert.ToInt32(ms.Length)); _cmdInsert.Parameters[1].Value = Image; _cmdInsert.Parameters[2].Value = fFilm.Plot; _cmdInsert.Parameters[3].Value = fFilm.Rating; _cmdInsert.Parameters[4].Value = fFilm.Genres; _cmdInsert.Parameters[5].Value = fFilm.ReleaseYear; _cmdInsert.Parameters[6].Value = fFilm.Directory; _cmdInsert.ExecuteNonQuery(); System.Windows.MessageBox.Show("Film added successfully"); } catch (Exception ex) { System.Windows.Forms.MessageBox.Show(ex.Message); } }
public static List<Film> GetFilmList(string CommandText) { try { DataSet dsDataSet = new DataSet(); SQLiteDataAdapter sqdaDataAdapter = new SQLiteDataAdapter(CommandText, _Conn); sqdaDataAdapter.Fill(dsDataSet); DataTable dtDataTable = dsDataSet.Tables[0]; List<Film> FilmList = new List<Film>(); for (int index = 0; index < dtDataTable.Rows.Count; index++) { Film fTemp = new Film(); fTemp.ID = Convert.ToInt32(dtDataTable.Rows[index].ItemArray[0]); fTemp.Name = (string)dtDataTable.Rows[index].ItemArray[1]; fTemp.Plot = (string)dtDataTable.Rows[index].ItemArray[3]; fTemp.Rating = Convert.ToString(dtDataTable.Rows[index].ItemArray[4]); fTemp.Genres = (string)dtDataTable.Rows[index].ItemArray[5]; fTemp.ReleaseYear = Convert.ToInt32(dtDataTable.Rows[index].ItemArray[6]); fTemp.Directory = (string)dtDataTable.Rows[index].ItemArray[7]; BitmapImage biImage = new BitmapImage(); MemoryStream ms = new MemoryStream((byte[])dtDataTable.Rows[index].ItemArray[2]); biImage.BeginInit(); biImage.StreamSource = ms; biImage.EndInit(); fTemp.Image = biImage; FilmList.Add(fTemp); } return FilmList; } catch (Exception excep) { System.Windows.MessageBox.Show("Database Data Request Failed: \n" + "SQL Statement: " + CommandText + "\nError Message: " + excep.Message, "An Error Has Occurred"); return null; } }
public void WriteInfo(Film fFilm) { //IMAGEINFO.Text = "HEIGHT: " + fFilm.Image.PixelHeight + " WIDTH: " + fFilm.Image.PixelWidth + " OTHER INFO: " + fFilm.Image.Format; TxBoxName.Text = fFilm.Name; TxBoxRating.Text = fFilm.Rating; TxBoxRelease.Text = fFilm.ReleaseYear.ToString(); TxBoxStory.Text = fFilm.Plot; TxBoxGenres.Text = fFilm.Genres; FilmImage.Source = fFilm.Image; }