Esempio n. 1
0
		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;   
            }
        }
Esempio n. 4
0
		public static void DeleteFilm(Film fFilm)
		{
			_cmdDelete.Parameters[0].Value = fFilm.ID;
			_cmdDelete.ExecuteNonQuery();
			
		}
Esempio n. 5
0
        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);
            }
        }
Esempio n. 6
0
        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);

            }


        }
Esempio n. 7
0
        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;
 }