示例#1
0
        }// end of the lstUserName Select Event:

        //
        // UserReview button which will display movie name and review given in the movie with username on the top:
        //
        private void cndUserReview_Click(object sender, EventArgs e)
        {
            this.lstReview1.Items.Clear();

            if (this.lstUserName.SelectedIndex < 0)
            {
                MessageBox.Show("Please select a user...");
                return;
            }

            string username = this.lstUserName.Text;
            int    userID   = System.Int32.Parse(this.txtUserID.Text);

            this.lstReview1.Items.Add(username);
            this.lstReview1.Items.Add("");

            BusinessTier.Business biztier = new BusinessTier.Business(this.txtDatabase.Text);

            BusinessTier.UserDetail details = biztier.GetUserDetail(userID);


            var reviews = details.Reviews;

            foreach (var review in reviews)
            {
                var movieID = review.MovieID;
                BusinessTier.MovieDetail detail = biztier.GetMovieDetail(movieID);
                string line = string.Format("{0}-> {1}", detail.movie.MovieName, review.Rating);
                this.lstReview1.Items.Add(line);
            }
        }//end of the username review button:
示例#2
0
        private void getReviewsBUTTON_Click(object sender, EventArgs e)
        {
            this.displayLISTBOX.Items.Clear();
            //this.typeUserNameTEXTBOX.Text = " ";

            string filename = this.filenameTEXTBOX.Text;

            BusinessTier.Business biztier = new BusinessTier.Business(filename);

            var movie = biztier.GetMovie(this.typeMovieNameTEXTBOX.Text);

            if (movie == null)
            {
                MessageBox.Show("Wrong movie name!");
            }
            else
            {
                var movie2 = biztier.GetMovieDetail(movie.MovieID);

                displayLISTBOX.Items.Add(this.typeMovieNameTEXTBOX.Text);
                displayLISTBOX.Items.Add(" ");

                BusinessTier.MovieDetail movieDetail = biztier.GetMovieDetail(movie.MovieID);

                foreach (var review in movieDetail.Reviews)
                {
                    displayLISTBOX.Items.Add(review.UserID + ": " + review.Rating);
                }
            }
        }
        private void listBox1_SelectedIndexChanged(object sender, EventArgs e) //movie List
        {
            string dbfilename = this.textBox1.Text;

            this.textBox2.Clear();
            this.textBox3.Clear();
            this.textBox6.Clear();
            this.textBox6.Text = this.listBox1.Text;

            BusinessTier.Business biztier = new BusinessTier.Business(dbfilename); //open object
            string moviename = this.listBox1.Text;

            BusinessTier.Movie movie = biztier.GetMovie(moviename); //obtain movie object

            if (movie == null)
            {
                MessageBox.Show("Error 404!");
            }

            else
            {
                if (!fileExists(dbfilename))
                {
                    return;
                }
                this.textBox2.Text = movie.MovieID.ToString();
                BusinessTier.MovieDetail details = biztier.GetMovieDetail(Convert.ToInt32(this.textBox2.Text));
                string rating = details.AvgRating.ToString();
                double result = Convert.ToDouble(rating);
                this.textBox3.Text = Convert.ToString(Math.Round(result, 1));
            }
        }
示例#4
0
        //---------------------------------------------------------------------------------------------------------------------------


        //---------------------------------------------------------------------------------------------------------------------------
        //
        // Top N-Movies by Average Rating
        //
        private void button6_Click(object sender, EventArgs e)
        {
            // Clear listbox
            this.lstMovieReviews.Items.Clear();


            // Check for no input or negative input
            if ((this.topNMovies.Text == "") || System.Int32.Parse(this.topNMovies.Text) <= 0)
            {
                // Display message
                MessageBox.Show("Please enter a valid number...");
                return;
            }

            // Get the number from the user input
            int N = System.Int32.Parse(this.topNMovies.Text);

            BusinessTier.Business biztier = new BusinessTier.Business(this.txtDatabase.Text);

            var topMovies = biztier.GetTopMoviesByAvgRating(N);

            foreach (var review in topMovies)
            {
                BusinessTier.MovieDetail avg = biztier.GetMovieDetail(review.MovieID);

                string line = string.Format("{0}: {1}", review.MovieName, avg.AvgRating);
                this.lstMovieReviews.Items.Add(line);
            }
        }
示例#5
0
        /* Displays Average Rating and Movie ID in text boxes right of listbox */
        private void getAvgRating_movieID()
        {
            int index = this.listBox1.SelectedIndex;

            BusinessTier.Business btier = new BusinessTier.Business(this.textBox1.Text);

            // test connection to database
            if (!btier.TestConnection())
            {
                MessageBox.Show("Can't connect to the database!");
                return;
            }

            // Get ID and Average rating for the movie
            BusinessTier.Movie movie = btier.GetMovie(this.listBox1.Items[index].ToString());

            if (movie == null)
            {
                MessageBox.Show("Movie could not be found!");
            }
            else
            {
                // Movie exists, display ID and AVG rating
                BusinessTier.MovieDetail m = btier.GetMovieDetail(movie.MovieID);
                this.textBox2.Text = movie.MovieID.ToString();
                this.textBox3.Text = m.AvgRating.ToString();
            }

            // Done
            this.textBox7.Text = this.listBox1.Items[index].ToString();
        }
示例#6
0
        //-----------------------------------------------------------------------------------------------------------------------------------------
        private void Reviews_Click(object sender, EventArgs e)//Movie Reviews
        {
            //textBox11: Movie Input
            //listBox1: Diplay reviews
            listBox1.Items.Clear();                 // Clear display

            string dbfilename = this.textBox3.Text; //get DB name from text box: //where the database is located

            BusinessTier.Business biztier = new BusinessTier.Business(dbfilename);

            string movie = this.textBox11.Text;     //get user’s input from where they are clicking

            BusinessTier.Movie movieObj = biztier.GetMovie(movie);

            if (movieObj == null)
            {
                MessageBox.Show("Invalid Movie");
                return;
            }

            BusinessTier.MovieDetail details = biztier.GetMovieDetail(movieObj.MovieID); // from Object browser

            listBox1.Items.Add(movie);
            listBox1.Items.Add(" ");

            foreach (var x in details.Reviews)
            {
                listBox1.Items.Add(x.UserID + ": " + x.Rating);
            }

            textBox11.Clear(); //Clear textbox
        }
示例#7
0
        }// txtDatabase

        //
        //Click review button to display the review of selected movie:
        //
        private void revButton_Click(object sender, EventArgs e)
        {
            this.lstReviews.Items.Clear();

            if (this.lstMovies.SelectedIndex < 0)
            {
                MessageBox.Show("Please select a movie...");
                return;
            }

            // Code taken From Friday Lacture:
            string moviename = this.lstMovies.Text;
            int    movieid   = System.Int32.Parse(this.textMovieID.Text);

            this.lstReviews.Items.Add(moviename);
            this.lstReviews.Items.Add("");

            if (this.textMovieRating.Text == "0")
            {
                this.lstReviews.Items.Add("There are No Reviews");
            }

            BusinessTier.Business biztier = new BusinessTier.Business(this.txtDatabase.Text);

            BusinessTier.MovieDetail details = biztier.GetMovieDetail(movieid);

            foreach (BusinessTier.Review review in details.Reviews)
            {
                string line = string.Format("{0}: {1}", review.UserID, review.Rating);
                this.lstReviews.Items.Add(line);
            }
        }//end of the review button:
示例#8
0
        // When selecting a movie in the list, retrieve its id and average rating
        private void listBox_movies_SelectedIndexChanged(object sender, EventArgs e)
        {
            string movieName = this.listBox_movies.Text;

            this.textBox_movieID.Clear();
            this.textBox_avgRating.Clear();

            string filename = this.textBox_filename.Text;

            if (!fileExists(filename))
            {
                return;
            }

            BusinessTier.Business biztier = new BusinessTier.Business(filename);
            BusinessTier.Movie    movie   = biztier.GetMovie(movieName);

            if (movie == null)
            {
                MessageBox.Show("ERROR: Movie not found!");
                return;
            }

            this.textBox_movieID.Text = movie.MovieID.ToString();
            BusinessTier.MovieDetail movieDetails = biztier.GetMovieDetail(movie.MovieID);

            if (movieDetails == null)
            {
                MessageBox.Show("ERROR: MovieID possibly corrupted!");
                return;
            }

            this.textBox_avgRating.Text = movieDetails.AvgRating.ToString();
        }
示例#9
0
        // Summarize the ratings for a particular movie selected
        private void btn_eachRating_Click(object sender, EventArgs e)
        {
            this.listBox_reviews.Items.Clear();

            if (this.listBox_movies.SelectedIndex < 0)
            {
                MessageBox.Show("Please select a movie...");
                return;
            }

            string filename = this.textBox_filename.Text;

            if (!fileExists(filename))
            {
                return;
            }

            string movieName = this.listBox_movies.Text;
            int    movieID   = System.Int32.Parse(this.textBox_movieID.Text);

            this.listBox_reviews.Items.Add(movieName);
            this.listBox_reviews.Items.Add("");

            BusinessTier.Business    biztier = new BusinessTier.Business(this.textBox_filename.Text);
            BusinessTier.MovieDetail details = biztier.GetMovieDetail(movieID);

            var reviews = details.Reviews;

            if (reviews.Count <= 0)
            {
                string line = "-No reviews-";
                this.listBox_reviews.Items.Add(line);
                return;
            }

            this.Cursor = Cursors.WaitCursor;

            var query = from r in details.Reviews
                        group r by r.Rating into grp
                        orderby grp.Key descending
                        select new
            {
                Rating = grp.Key,
                Count  = grp.Count()
            };

            foreach (var tuple in query)
            {
                string line = string.Format("{0}: {1}", tuple.Rating, tuple.Count);

                this.listBox_reviews.Items.Add(line);
            }

            this.Cursor = Cursors.Default;
        }
示例#10
0
        //---------------------------------------------------------------------------------------------------------------------------


        //---------------------------------------------------------------------------------------------------------------------------
        //
        // Each Rating
        //
        private void button5_Click(object sender, EventArgs e)
        {
            // Clear list box
            this.lstMovieReviews.Items.Clear();

            // Wait for user to select a movie
            if (this.lstMovies.SelectedIndex < 0)
            {
                MessageBox.Show("Please select a movie...");
                return;
            }

            // Get movie name
            string moviename = this.lstMovies.Text;

            // Check for error, display message if movie not found
            if (moviename == null)
            {
                MessageBox.Show("Movie not found");
                return;
            }


            int movieId = System.Int32.Parse(this.txtMovieID.Text);

            this.lstMovieReviews.Items.Add(moviename);
            this.lstMovieReviews.Items.Add("");


            BusinessTier.Business biztier = new BusinessTier.Business(this.txtDatabase.Text);

            BusinessTier.MovieDetail details = biztier.GetMovieDetail(movieId);

            var reviews = details.Reviews;

            var query = from r in details.Reviews
                        group r by r.Rating into grp
                        orderby grp.Key descending
                        select new
            {
                Rating = grp.Key,
                Count  = grp.Count()
            };

            // Display rating and count
            foreach (var tuple in query)
            {
                string line = string.Format("{0}: {1}",
                                            tuple.Rating, tuple.Count);

                this.lstMovieReviews.Items.Add(line);
            }
        }
        //
        // GetMovieDetail:
        //
        // Given a MOVIE ID, returns detailed information about this movie --- all
        // the reviews, the total number of reviews, average rating, etc.  If the
        // movie cannot be found, null is returned.
        //
        public MovieDetail GetMovieDetail(int MovieID)
        {
            // MOVIE OBJECT ----------------------------------------------------------------------------
            BusinessTier.Movie Movie = GetMovie(MovieID);
            // -----------------------------------------------------------------------------------------

            // AVG RATING ------------------------------------------------------------------------------
            double avgRating;
            string sql   = string.Format(@"SELECT AVG(CAST(Rating as float)) FROM Reviews WHERE MovieID = {0};", MovieID);
            object query = dataTier.ExecuteScalarQuery(sql);

            if (query.ToString() != "")
            {
                avgRating = Convert.ToDouble(query.ToString());
            }
            else
            {
                avgRating = 0.0;
            }
            // -----------------------------------------------------------------------------------------

            // NUM OF REVIEWS --------------------------------------------------------------------------
            sql   = string.Format(@"SELECT Count(MovieID) FROM Reviews WHERE MovieID = {0};", MovieID);
            query = dataTier.ExecuteScalarQuery(sql);
            int numReviews = Convert.ToInt32(query.ToString());
            // -----------------------------------------------------------------------------------------

            // BUILDING LIST OF REVIEWS ----------------------------------------------------------------
            List <Review> reviews = new List <Review>();

            // HARVESTS ALL DATA WE NEED EXCEPT MOVIEID (ALREADY HAVE)
            sql = string.Format(@"SELECT DISTINCT ReviewID, Rating, UserID FROM Reviews WHERE MovieID = {0} ORDER BY Rating DESC, ReviewID ASC;", MovieID);
            DataSet reviewsSet = dataTier.ExecuteNonScalarQuery(sql);

            foreach (DataRow row in reviewsSet.Tables["TABLE"].Rows)
            {
                reviews.Add(new BusinessTier.Review(Convert.ToInt32(row["ReviewID"]),
                                                    MovieID,
                                                    Convert.ToInt32(row["UserID"]),
                                                    Convert.ToInt32(row["Rating"])));
            }
            // -----------------------------------------------------------------------------------------


            BusinessTier.MovieDetail MovieDetail = new BusinessTier.MovieDetail(Movie, avgRating, numReviews, reviews);

            return(MovieDetail);
        }
示例#12
0
        // Get all reviews entered by a particular Netflix user
        private void btn_getUserReviews_Click(object sender, EventArgs e)
        {
            this.listBox_reviews.Items.Clear();

            if (this.listBox_users.SelectedIndex < 0)
            {
                MessageBox.Show("Please select a user...");
                return;
            }

            string filename = this.textBox_filename.Text;

            if (!fileExists(filename))
            {
                return;
            }

            string userName = this.listBox_users.Text;
            int    userID   = System.Int32.Parse(this.textBox_userID.Text);

            this.listBox_reviews.Items.Add(userName);
            this.listBox_reviews.Items.Add("");

            BusinessTier.Business   biztier  = new BusinessTier.Business(filename);
            BusinessTier.UserDetail details2 = biztier.GetUserDetail(userID);

            var reviews2 = details2.Reviews;

            if (reviews2.Count <= 0)
            {
                string line = "-No reviews-";
                this.listBox_reviews.Items.Add(line);
                return;
            }

            this.Cursor = Cursors.WaitCursor;

            foreach (var review in reviews2)
            {
                BusinessTier.MovieDetail details = biztier.GetMovieDetail(review.MovieID);

                string line = string.Format("{0} -> {1}", details.movie.MovieName, review.Rating);

                this.listBox_reviews.Items.Add(line);
            }

            this.Cursor = Cursors.Default;
        }
示例#13
0
        }//end of the review button:

        //
        // Each Reveiw button which is dispalyed in the listEach rating box which take input
        // by selecting movie in the movie List.
        //
        private void eachRating_Click(object sender, EventArgs e)
        {
            this.lstEachRating.Items.Clear();

            if (this.lstMovies.SelectedIndex < 0)
            {
                MessageBox.Show("Please select a movie...");
                return;
            }
            // Code taken From Friday Lacture:
            string moviename = this.lstMovies.Text;
            int    movieid   = System.Int32.Parse(this.textMovieID.Text);

            this.lstEachRating.Items.Add(moviename);
            this.lstEachRating.Items.Add("");

            BusinessTier.Business biztier = new BusinessTier.Business(this.txtDatabase.Text);

            BusinessTier.MovieDetail details = biztier.GetMovieDetail(movieid);

            var reviews = details.Reviews;

            //query taken from Friday Lacture
            var query = from r in details.Reviews
                        group r by r.Rating into grp
                        orderby grp.Key descending
                        select new
            {
                Rating = grp.Key,
                Count  = grp.Count()
            };
            var count = 0;

            foreach (var tuple in query)
            {
                string line = string.Format("{0}: {1}",
                                            tuple.Rating, tuple.Count);
                count = count + tuple.Count;

                this.lstEachRating.Items.Add(line);
            }
            this.lstEachRating.Items.Add("");

            this.lstEachRating.Items.Add("Total:" + count);
        }//ebd of the each Review Button:
示例#14
0
        /* When this button is clicked, display the top N movies */
        private void topNMovies_Click(object sender, EventArgs e)
        {
            this.Cursor = Cursors.WaitCursor;
            BusinessTier.Business btier = new BusinessTier.Business(this.textBox1.Text);

            // test connection to database
            if (!btier.TestConnection())
            {
                MessageBox.Show("Can't connect to the database!");
                return;
            }

            // Check that textbox has valid input
            if (string.IsNullOrWhiteSpace(this.textBox6.Text))
            {
                MessageBox.Show("Please enter a value in the textbox!");
                return;
            }

            int N = Convert.ToInt32(this.textBox6.Text);

            if (N < 1)
            {
                MessageBox.Show("Please enter a number greater than 0!");
                return;
            }

            // Get top N movies
            this.listBox1.Items.Clear();
            this.Cursor = Cursors.WaitCursor;
            IReadOnlyList <BusinessTier.Movie> topNMovies = btier.GetTopMoviesByAvgRating(N);


            // Insert the top N movies
            foreach (BusinessTier.Movie M in topNMovies)
            {
                BusinessTier.MovieDetail movieDetail = btier.GetMovieDetail(M.MovieID);
                this.listBox1.Items.Add(M.MovieName + ":" + movieDetail.AvgRating);
            }

            // Done
            this.Cursor            = Cursors.Default;
            this.lastButtonPressed = "Top N Movies";
        }
示例#15
0
        // Display the top N movies by average rating using user input
        private void btn_topMovies_Click(object sender, EventArgs e)
        {
            string filename = this.textBox_filename.Text;

            if (!fileExists(filename))
            {
                return;
            }


            Form2 testDialog = new Form2();
            int   value      = 0;

            // Show testDialog as a modal dialog and determine if DialogResult = OK.
            if (testDialog.ShowDialog(this) == DialogResult.OK)
            {
                // Read the contents of testDialog's TextBox.
                value = testDialog.userInput;
            }
            else
            {
                return;
            }
            testDialog.Dispose();


            this.Cursor = Cursors.WaitCursor;

            this.listBox_reviews.Items.Clear();

            BusinessTier.Business biztier = new BusinessTier.Business(filename);
            var topMovies = biztier.GetTopMoviesByAvgRating(value);
            int i         = 1;

            foreach (var list in topMovies)
            {
                BusinessTier.MovieDetail details = biztier.GetMovieDetail(list.MovieID);

                this.listBox_reviews.Items.Add(i + ") " + list.MovieName.ToString() + ": " + details.AvgRating);
                i++;
            }

            this.Cursor = Cursors.Default;
        }
示例#16
0
        private void getTopNMovieBUTTON_Click(object sender, EventArgs e)
        {
            this.displayLISTBOX.Items.Clear();
            this.listLISTBOX.Items.Clear();
            this.movieIdTEXTBOX.Text            = "";
            this.avgRatingTEXTBOX.Text          = "";
            this.userIdTEXTBOX.Text             = "";
            this.occupationTEXTBOX.Text         = "";
            this.typeMovieNameTEXTBOX.Text      = "";
            this.typeUserNameTEXTBOX.Text       = "";
            this.insertReviewMovieTEXTBOX.Text  = "";
            this.insertReviewUserTEXTBOX.Text   = "";
            this.insertReviewRatingTEXTBOX.Text = "";

            string filename = this.filenameTEXTBOX.Text;

            BusinessTier.Business biztier = new BusinessTier.Business(filename);

            int topN;

            if (int.TryParse(topNRatingTEXTBOX.Text, out topN))
            {
            }
            else
            {
                MessageBox.Show("Input ERROR!");
            }


            if (topN <= 1)
            {
                MessageBox.Show("Input ERROR!");
            }
            else
            {
                IReadOnlyList <BusinessTier.Movie> topMovie = biztier.GetTopMoviesByAvgRating(topN);

                foreach (BusinessTier.Movie movie in topMovie)
                {
                    BusinessTier.MovieDetail md = biztier.GetMovieDetail(movie.MovieID);
                    displayLISTBOX.Items.Add(movie.MovieName + ": " + md.AvgRating);
                }
            }
        }
示例#17
0
        //-----------------------------------------------------------------------------------------------------------------------------------------
        private void button5_Click(object sender, EventArgs e)// Top N Movies
        {
            //get top movies by N + ratings
            //textBox9 is N

            listBox2.Items.Clear();// clear display

            var test = this.textBox9.Text;

            if (test == null)//no number added check
            {
                MessageBox.Show("Please insert a number");
                return;
            }

            string dbfilename = this.textBox3.Text;   //get DB name from text box: //where the database is located

            BusinessTier.Business biztier = new BusinessTier.Business(dbfilename);

            //string username = this.listBox2.Text;     //get user’s input from where they are clicking
            //BusinessTier.User user = biztier.GetNamedUser(username); //obtain user object

            int number = Convert.ToInt32(this.textBox9.Text);//invalid number check

            if (number < 0)
            {
                MessageBox.Show("Invalid number!");
                return;
            }

            var topMovies = biztier.GetTopMoviesByAvgRating(Convert.ToInt32(this.textBox9.Text));

            foreach (var x in topMovies)
            {
                BusinessTier.Movie       movie  = biztier.GetMovie(x.MovieName);
                BusinessTier.MovieDetail movie2 = biztier.GetMovieDetail(movie.MovieID);

                var review = movie2.AvgRating;

                listBox2.Items.Add(x.MovieName + ":" + review);
            }

            this.textBox9.Clear();
        }
示例#18
0
        //-----------------------------------------------------------------------------------------------------------------------------------------
        private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            //ListBox1: User's selection
            //textBox1: ID
            //textBox2: Average rating

            string dbfilename = this.textBox3.Text;   //get DB name from text box: //where the database is located

            BusinessTier.Business biztier = new BusinessTier.Business(dbfilename);

            string moviename = this.listBox1.Text;                                   //get user’s input from where they are clicking

            BusinessTier.Movie movie = biztier.GetMovie(moviename);                  //  obtain movie object:

            BusinessTier.MovieDetail movie2 = biztier.GetMovieDetail(movie.MovieID); // from Object browser

            this.textBox1.Text = "" + movie.MovieID;

            this.textBox2.Text = "" + movie2.AvgRating; //from Object browser
        }
        private void button2_Click(object sender, EventArgs e) //movie review
        {
            string dbfilename = this.textBox1.Text;

            this.listBox3.Items.Clear();
            if (dbfilename == "")
            {
                MessageBox.Show("Please Input a database connection");
            }
            else
            {
                if (!fileExists(dbfilename))
                {
                    return;
                }
                BusinessTier.Business biztier = new BusinessTier.Business(dbfilename);
                if (this.listBox1.Text == "")
                {
                    MessageBox.Show("Please select a movie from the list");
                    return;
                }
                string moviename = this.listBox1.Text;
                var    movieid   = biztier.GetMovie(moviename);
                BusinessTier.MovieDetail detail = biztier.GetMovieDetail(movieid.MovieID);

                if (detail == null)
                {
                    MessageBox.Show("Invalid Input");
                }
                else
                {
                    this.listBox3.Items.Add(moviename);
                    this.listBox3.Items.Add("");
                    foreach (BusinessTier.Review review in detail.Reviews)
                    {
                        string info = String.Format("{0}: {1}", review.UserID, review.Rating);
                        this.listBox3.Items.Add(info);
                    }
                }
            }
        }
示例#20
0
        private void button2_Click(object sender, EventArgs e)
        {
            string mname;
            int    mid;

            String dbfilename = this.dbname.Text; // get DB name from text box:

            BusinessTier.Business biztier = new BusinessTier.Business(dbfilename);
            if (biztier.TestConnection())
            {
                if (this.listBox1.SelectedIndex < 0)
                {
                    MessageBox.Show("Please select a movie");
                    return;
                }
                else
                {
                    this.listBox2.Items.Clear();
                    mname = this.listBox1.Text;
                    mid   = System.Int32.Parse(this.textBox9.Text);
                    BusinessTier.MovieDetail details = biztier.GetMovieDetail(mid);


                    this.listBox2.Items.Add(mname);
                    this.listBox2.Items.Add("");
                    foreach (var j in details.Reviews)
                    {
                        this.listBox2.Items.Add(j.UserID + " : " + j.Rating);
                    }
                }
            }
            else
            {
                MessageBox.Show("Connection could not be established");
                return;
            }
        }
示例#21
0
        private void eachRating_Click(object sender, EventArgs e)//each rating
        {
            //listBox1: Display results
            //textBox12: movie Input
            listBox1.Items.Clear();                 // clear the display

            string dbfilename = this.textBox3.Text; //get DB name from text box: //where the database is located

            BusinessTier.Business biztier = new BusinessTier.Business(dbfilename);

            string movie = this.textBox12.Text;     //get user’s input from where they are clicking

            BusinessTier.Movie movieObj = biztier.GetMovie(movie);


            if (movieObj == null)
            {
                MessageBox.Show("Invalid Movie");
                return;
            }

            BusinessTier.MovieDetail details = biztier.GetMovieDetail(movieObj.MovieID); // from Object browser


            listBox1.Items.Add(movie);
            listBox1.Items.Add(" ");

            int x5 = 0;
            int x4 = 0;
            int x3 = 0;
            int x2 = 0;
            int x1 = 0;
            int x0 = 0;

            foreach (var x in details.Reviews)
            {
                if (x.Rating == 5)
                {
                    x5 = x5 + 1;
                }
                else if (x.Rating == 4)
                {
                    x4 = x4 + 1;
                }
                else if (x.Rating == 3)
                {
                    x3 = x3 + 1;
                }
                else if (x.Rating == 2)
                {
                    x2 = x2 + 1;
                }
                else
                {
                    x1 = x1 + 1;
                }

                x0 = x0 + 1; //total
            }

            listBox1.Items.Add("5: " + x5);
            listBox1.Items.Add("4: " + x4);
            listBox1.Items.Add("3: " + x3);
            listBox1.Items.Add("2: " + x2);
            listBox1.Items.Add("1: " + x1);
            listBox1.Items.Add(" ");
            listBox1.Items.Add("Total: " + x0);

            textBox12.Clear();//clear textbox
        }
示例#22
0
        /* When the user clicks a movie name in the listbox, a different listbox
         * displays all of its ratings, a third listbox displays statistics about the ratings */
        private void getAllMovieRatings()
        {
            int index = this.listBox1.SelectedIndex;

            BusinessTier.Business btier = new BusinessTier.Business(this.textBox1.Text);

            // test connection to database
            if (!btier.TestConnection())
            {
                MessageBox.Show("Can't connect to the database!");
                return;
            }

            // Get the movie and all of it's ratings
            BusinessTier.Movie movie = btier.GetMovie(this.listBox1.Items[index].ToString());

            if (movie == null)
            {
                MessageBox.Show("Movie does not exist!");
                return;
            }
            else
            {
                // Display ratings and count ratings
                int[] ratings = new int[] { 0, 0, 0, 0, 0, 0 };
                this.listBox2.Items.Clear();
                BusinessTier.MovieDetail movieDetails = btier.GetMovieDetail(movie.MovieID);

                if (movieDetails.NumReviews == 0)
                {
                    this.listBox2.Items.Add("No Reviews");
                }
                else
                {
                    // For all reviews, get User ID + Rating and insert
                    this.listBox2.Items.Add(movie.MovieName);
                    this.listBox2.Items.Add("");

                    foreach (BusinessTier.Review R in movieDetails.Reviews)
                    {
                        this.listBox2.Items.Add(R.UserID + ": " + R.Rating);
                        countRating(ref ratings, R.Rating);
                    }
                }

                // Display the rating counts
                int ratingsTotal = 0;
                this.listBox3.Items.Clear();
                this.listBox3.Items.Add(movie.MovieName);
                this.listBox3.Items.Add("");

                for (int i = 1; i <= 5; ++i)
                {
                    this.listBox3.Items.Add(i + ":" + ratings[i]);
                    ratingsTotal += ratings[i];
                }

                this.listBox3.Items.Add("");
                this.listBox3.Items.Add("Total: " + ratingsTotal);
            }
        }
示例#23
0
        private void getmoviereviews()
        {
            this.listBox3.Items.Clear();
            this.listBox5.Items.Clear();


            string dbfilename = this.textBox1.Text;

            BusinessTier.Business biztier = new BusinessTier.Business(dbfilename);
            if (!biztier.TestConnection())
            {
                return;
            }
            if (textBox5.Text.Length == 0)
            {
                return;
            }
            int movieID = Convert.ToInt32(textBox5.Text);

            BusinessTier.MovieDetail details = biztier.GetMovieDetail(movieID);

            var reviews = details.Reviews;

            int rate5 = 0; int rate4 = 0; int rate3 = 0; int rate2 = 0; int rate1 = 0;


            foreach (var review in reviews)
            {
                string line1 = string.Format("{0}: {1}", review.UserID, review.Rating);
                listBox3.Items.Add(line1);

                if (review.Rating == 5)
                {
                    rate5++;
                }
                else if (review.Rating == 4)
                {
                    rate4++;
                }
                else if (review.Rating == 3)
                {
                    rate3++;
                }
                else if (review.Rating == 2)
                {
                    rate2++;
                }
                else if (review.Rating == 1)
                {
                    rate1++;
                }
            }

            string line = string.Format("5: {0}", rate5);

            listBox5.Items.Add(line);

            line = string.Format("4: {0}", rate4);
            listBox5.Items.Add(line);
            line = string.Format("3: {0}", rate3);
            listBox5.Items.Add(line);
            line = string.Format("2: {0}", rate2);
            listBox5.Items.Add(line);

            line = string.Format("1: {0}", rate1);
            listBox5.Items.Add(line);
        }
示例#24
0
        private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            String dbfilename = this.textBox1.Text;

            /* if (!fileExists(filename))
             *   return;*/

            this.Cursor = Cursors.WaitCursor;

            //clearForm();

            /*SqlConnection db;
             * String version = "MSSQLLocalDB";
             * //filename = "CrimeDB.mdf";
             * String connectionInfo = String.Format(@"Data Source=(LocalDB)\{0};AttachDbFilename=|DataDirectory|\{1};Integrated Security=True;", version, filename);
             * db = new SqlConnection(connectionInfo);
             * db.Open();
             * string Name = this.listBox1.Text;
             * Name = Name.Replace("'", "''");
             * string sql = string.Format(@"SELECT MovieID FROM Movies where Movies.MovieName= '{0}';", Name);
             * SqlCommand cmd = new SqlCommand();
             * cmd.Connection = db;
             * SqlDataAdapter adapter = new SqlDataAdapter(cmd);
             * DataSet ds = new DataSet();
             *
             * cmd.CommandText = sql;
             * object result = cmd.ExecuteScalar();*/
            BusinessTier.Business biztier = new BusinessTier.Business(dbfilename);
            if (!biztier.TestConnection())
            {
                return;
            }
            //if (textBox5.Text.Length == 0) return;
            //int movieID = Convert.ToInt32(textBox5.Text);

            string Name = this.listBox1.Text;

            BusinessTier.Movie details = biztier.GetMovie(Name);

            //var reviews = details.Reviews;


            int id = Convert.ToInt32(details.MovieID);

            textBox5.Text = Convert.ToString(id);

            /*sql = string.Format(@"SELECT Rating FROM Reviews, Movies where Movies.MovieName= '{0}' And Movies.MovieID= Reviews.MovieID;", Name);
             *
             * cmd = new SqlCommand();
             * cmd.Connection = db;
             * adapter = new SqlDataAdapter(cmd);
             * ds = new DataSet();
             *
             * cmd.CommandText = sql;
             * adapter.Fill(ds);
             * List<Double> numbers = new List<double>();
             * foreach (DataRow row in ds.Tables["TABLE"].Rows)
             * {
             *  Double rate = Convert.ToDouble(row["Rating"]);
             *  numbers.Add(rate);
             *  //movienames = string.Format("{0}", (string)(row["MovieName"]));
             *  //listBox1.Items.Add(movienames);
             * }
             * if (numbers.Count == 0)
             * {
             *  this.Cursor = Cursors.Default;
             *
             *  return;
             * }*/

            BusinessTier.MovieDetail movieDetail = biztier.GetMovieDetail(id);


            Double average = movieDetail.AvgRating;

            textBox2.Text = average.ToString();
            //db.Close();

            getmoviereviews();

            this.Cursor = Cursors.Default;

            /*int UN= 233;
             *
             * BusinessTier.Business biztier = new BusinessTier.Business(filename);
             * BusinessTier.Movie m = biztier.GetMovie(UN);
             *
             * textBox16.Text = m.MovieName;*/
        }
示例#25
0
        private void listLISTBOX_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (LIST_STATUS != 3)
            {
                this.displayLISTBOX.Items.Clear();
            }

            string filename = this.filenameTEXTBOX.Text;

            BusinessTier.Business biztier = new BusinessTier.Business(filename);

            if (LIST_STATUS == 1)           // movie button
            {
                if (this.listLISTBOX != null)
                {
                    // movie name
                    var movie = biztier.GetMovie(this.listLISTBOX.Text);
                    movieIdTEXTBOX.Text = movie.MovieID.ToString();
                    //typeMovieNameTEXTBOX.Text = movie.MovieName.ToString();
                    typeMovieNameTEXTBOX.Text = "";
                    typeUserNameTEXTBOX.Text  = "";

                    // avg rating
                    var movie2 = biztier.GetMovieDetail(movie.MovieID);
                    avgRatingTEXTBOX.Text = movie2.AvgRating.ToString();


                    displayLISTBOX.Items.Add(this.listLISTBOX.Text);
                    displayLISTBOX.Items.Add(" ");

                    BusinessTier.MovieDetail movieDetail = biztier.GetMovieDetail(movie.MovieID);

                    foreach (var review in movieDetail.Reviews)
                    {
                        displayLISTBOX.Items.Add(review.UserID + ": " + review.Rating);
                    }
                }
            }
            else if (LIST_STATUS == 2)      // user button
            {
                if (this.listLISTBOX != null)
                {
                    // user id
                    var user = biztier.GetNamedUser(this.listLISTBOX.Text);
                    userIdTEXTBOX.Text = user.UserID.ToString();
                    //typeUserNameTEXTBOX.Text = user.UserName.ToString();
                    typeMovieNameTEXTBOX.Text = "";
                    typeUserNameTEXTBOX.Text  = "";

                    // occupation
                    occupationTEXTBOX.Text = user.Occupation.ToString();


                    displayLISTBOX.Items.Add(this.listLISTBOX.Text);
                    displayLISTBOX.Items.Add(" ");

                    BusinessTier.UserDetail userDetail = biztier.GetUserDetail(user.UserID);

                    foreach (var review in userDetail.Reviews)
                    {
                        BusinessTier.Movie movie = biztier.GetMovie(review.MovieID);
                        displayLISTBOX.Items.Add(movie.MovieName + " -> " + review.Rating);
                    }
                }
            }
            else if (LIST_STATUS == 3)
            {
                insertReviewMovieTEXTBOX.Text = this.listLISTBOX.Text;
            }
        }
示例#26
0
        private void summarizeMovieBUTTON_Click(object sender, EventArgs e)
        {
            this.displayLISTBOX.Items.Clear();
            this.listLISTBOX.Items.Clear();
            this.movieIdTEXTBOX.Text            = "";
            this.avgRatingTEXTBOX.Text          = "";
            this.userIdTEXTBOX.Text             = "";
            this.occupationTEXTBOX.Text         = "";
            this.typeMovieNameTEXTBOX.Text      = "";
            this.typeUserNameTEXTBOX.Text       = "";
            this.insertReviewMovieTEXTBOX.Text  = "";
            this.insertReviewUserTEXTBOX.Text   = "";
            this.insertReviewRatingTEXTBOX.Text = "";

            string filename = this.filenameTEXTBOX.Text;

            BusinessTier.Business biztier = new BusinessTier.Business(filename);

            var movie = biztier.GetMovie(this.summarizeMovieNameTEXTBOX.Text);

            if (movie == null)
            {
                MessageBox.Show("Movie not found");
            }
            else
            {
                displayLISTBOX.Items.Add(this.summarizeMovieNameTEXTBOX.Text);
                displayLISTBOX.Items.Add(" ");

                BusinessTier.MovieDetail movieDetail = biztier.GetMovieDetail(movie.MovieID);


                int rate5 = 0, rate4 = 0, rate3 = 0, rate2 = 0, rate1 = 0;

                foreach (var review in movieDetail.Reviews)
                {
                    if (review.Rating == 5)
                    {
                        rate5++;
                    }
                    else if (review.Rating == 4)
                    {
                        rate4++;
                    }
                    else if (review.Rating == 3)
                    {
                        rate3++;
                    }
                    else if (review.Rating == 2)
                    {
                        rate2++;
                    }
                    else if (review.Rating == 1)
                    {
                        rate1++;
                    }
                }

                displayLISTBOX.Items.Add("5: " + rate5);
                displayLISTBOX.Items.Add("4: " + rate4);
                displayLISTBOX.Items.Add("3: " + rate3);
                displayLISTBOX.Items.Add("2: " + rate2);
                displayLISTBOX.Items.Add("1: " + rate1);

                displayLISTBOX.Items.Add(" ");

                displayLISTBOX.Items.Add("Total: " + movieDetail.NumReviews);
            }
        }
示例#27
0
        //---------------------------------------------------------------------------------------------------------------------------


        //---------------------------------------------------------------------------------------------------------------------------
        //
        // Get Movie Reviews
        //
        private void button3_Click(object sender, EventArgs e)
        {
            // Clear list box
            this.lstMovieReviews.Items.Clear();

            // Wait for user to select a movie
            if (this.lstMovies.SelectedIndex < 0)
            {
                MessageBox.Show("Please select a movie...");
                return;
            }

            // Get movie name
            string moviename = this.lstMovies.Text;

            // If movie name is null, display "not found"
            if (moviename == null)
            {
                MessageBox.Show("Movie not found");
                return;
            }


            int movieId = System.Int32.Parse(this.txtMovieID.Text);

            this.lstMovieReviews.Items.Add(moviename);
            this.lstMovieReviews.Items.Add("");


            BusinessTier.Business biztier = new BusinessTier.Business(this.txtDatabase.Text);

            BusinessTier.MovieDetail details = biztier.GetMovieDetail(movieId);

            var reviews = details.Reviews;


            // Check for errors

            // Check if movie is not in the database
            if (this.txtMovieID.Text == "")
            {
                // Movie not found
                MessageBox.Show("Movie Not Found");
                return;
            }

            // Check if movie has no reviews
            else if (this.txtMovieRating.Text == "0")
            {
                // No reviews found, display message box
                MessageBox.Show("No Reviews Found");
                return;
            }

            // Input is correct, display user ID and rating
            else
            {
                foreach (var review in reviews)
                {
                    string line = string.Format("{0}: {1}", review.UserID, review.Rating);
                    this.lstMovieReviews.Items.Add(line);
                }
            }
        }