Example #1
0
        public ActionResult DisplaySearchResults(String strTitle, String strTagline, int[] enumGenres, DateTime?SelectedReleaseYear, Classification SelectedClass, enumMPAA Rating,
                                                 String strActor)
        {
            var query = from r in db.Movies
                        select r;

            if (strTitle != null)
            {
                query = query.Where(r => r.Title.Contains(strTitle));
            }
            if (strTagline != null)
            {
                query = query.Where(r => r.Tagline.Contains(strTagline));
            }

            if (enumGenres != null)
            {
                foreach (int i in enumGenres)
                {
                    query = query.Where(r => r.Genres.Any(g => g.GenreID == i));
                }
            }



            //if (strCustomerRating != null && strCustomerRating != "")
            //{
            //    Int32 intCustomerRating;
            //    try
            //    {
            //        intCustomerRating = Convert.ToInt32(strCustomerRating);
            //        switch (SelectedClass)
            //        {
            //            case Classification.GreaterThan:

            //                query = query.Where(r => r.StarCount > intStar);

            //                break;
            //            case Classification.LessThan:

            //                query = query.Where(r => r.StarCount <= intStar);

            //                break;
            //        }
            //    }
            //    catch
            //    {
            //        ViewBag.Message = "You must enter a number to search by stars";
            //        ViewBag.AllLanguages = GetAllLanguages();
            //        return View("DetailedSearch");
            //    }

            //}


            if (SelectedReleaseYear != null)
            {
                switch (SelectedClass)
                {
                case Classification.After:

                    query = query.Where(r => r.ReleaseDate >= SelectedReleaseYear);

                    break;

                case Classification.Before:

                    query = query.Where(r => r.ReleaseDate < SelectedReleaseYear);

                    break;
                }
            }

            //if (Rating != null & Rating.Count() != 0)
            //{

            //    foreach (int GenreID in enumGenres)
            //    {
            //        Genre GenreToDisplay = db.Genres.Find(GenreID);
            //        query = query.Where(r => r.Genre == GenreToDisplay.Name);
            //    }

            //}


            if (strActor != null)
            {
                query = query.Where(r => r.Actors.Contains(strActor));
            }

            switch (Rating)
            {
            case enumMPAA.Unrated:

                query = query.Where(r => r.MPAARating == enumMPAARating.Unrated);

                break;

            case enumMPAA.R:

                query = query.Where(r => r.MPAARating == enumMPAARating.R);

                break;

            case enumMPAA.PG:

                query = query.Where(r => r.MPAARating == enumMPAARating.PG);

                break;

            case enumMPAA.PG13:

                query = query.Where(r => r.MPAARating == enumMPAARating.PG13);

                break;

            case enumMPAA.G:

                query = query.Where(r => r.MPAARating == enumMPAARating.G);

                break;

            case enumMPAA.NC17:

                query = query.Where(r => r.MPAARating == enumMPAARating.NC17);

                break;

            default:
                break;
            }

            List <Movie> MoviesToDisplay = query.ToList();

            MoviesToDisplay.OrderBy(r => r.MovieNum);
            ViewBag.TotalMovies    = db.Movies.Count();
            ViewBag.SelectedMovies = MoviesToDisplay.Count();
            return(View("Index", MoviesToDisplay));
        }
Example #2
0
        public ActionResult DisplaySearchResults(String strTitle, String strTagline, int[] enumGenres, DateTime?SelectedReleaseYear, Classification SelectedClass, enumMPAA Rating,
                                                 String strActor, String CustomerRating, StarRank CustomerRatingRank, String RunTime, StarRank RunTimeG, DateTime?SelectedShowTime, Classification SelectedClass1)
        {
            var query = from r in db.Movies
                        select r;

            if (strTitle != null)
            {
                query = query.Where(r => r.Title.Contains(strTitle));
            }
            if (strTagline != null)
            {
                query = query.Where(r => r.Tagline.Contains(strTagline));
            }

            if (enumGenres != null)
            {
                foreach (int i in enumGenres)
                {
                    query = query.Where(r => r.Genres.Any(g => g.GenreID == i));
                }
            }



            if (CustomerRating != null && CustomerRating != "")
            {
                Double decCustomerRating;
                try
                {
                    decCustomerRating = Convert.ToDouble(CustomerRating);
                    switch (CustomerRatingRank)
                    {
                    case StarRank.GreaterThan:

                        query = query.Where(r => r.Reviews.Average(c => c.CustomerRating) > decCustomerRating);

                        break;

                    case StarRank.LessThan:

                        query = query.Where(r => r.Reviews.Average(c => c.CustomerRating) < decCustomerRating);

                        break;

                    case StarRank.Equal:

                        query = query.Where(r => r.Reviews.Average(c => c.CustomerRating) == decCustomerRating);

                        break;
                    }
                }
                catch
                {
                    ViewBag.Message   = "You must enter a number to search average customer rating";
                    ViewBag.AllGenres = GetAllGenres();
                    return(View("DetailedSearch"));
                }
            }



            if (SelectedReleaseYear != null)
            {
                switch (SelectedClass)
                {
                case Classification.After:

                    query = query.Where(r => r.ReleaseDate >= SelectedReleaseYear);

                    break;

                case Classification.Before:

                    query = query.Where(r => r.ReleaseDate < SelectedReleaseYear);

                    break;
                    //case Classification.Equal:

                    //    query = query.Where(r => r.ReleaseDate == SelectedReleaseYear);

                    //    break;
                }
            }



            if (strActor != null)
            {
                query = query.Where(r => r.Actors.Contains(strActor));
            }

            switch (Rating)
            {
            case enumMPAA.Unrated:

                query = query.Where(r => r.MPAARating == enumMPAARating.Unrated);

                break;

            case enumMPAA.R:

                query = query.Where(r => r.MPAARating == enumMPAARating.R);

                break;

            case enumMPAA.PG:

                query = query.Where(r => r.MPAARating == enumMPAARating.PG);

                break;

            case enumMPAA.PG13:

                query = query.Where(r => r.MPAARating == enumMPAARating.PG13);

                break;

            case enumMPAA.G:

                query = query.Where(r => r.MPAARating == enumMPAARating.G);

                break;

            case enumMPAA.NC17:

                query = query.Where(r => r.MPAARating == enumMPAARating.NC17);

                break;

            default:
                break;
            }

            if (RunTime != null && RunTime != "")
            {
                Int32 intRunTime;
                try
                {
                    intRunTime = Convert.ToInt32(RunTime);
                    switch (RunTimeG)
                    {
                    case StarRank.GreaterThan:

                        query = query.Where(r => r.Runtime >= intRunTime);

                        break;

                    case StarRank.LessThan:

                        query = query.Where(r => r.Runtime < intRunTime);

                        break;

                    case StarRank.Equal:

                        query = query.Where(r => r.Runtime == intRunTime);

                        break;
                    }
                }
                catch
                {
                    ViewBag.Message1  = "You must enter a number to search run time";
                    ViewBag.AllGenres = GetAllGenres();
                    return(View("DetailedSearch"));
                }
            }

            if (SelectedShowTime != null)
            {
                switch (SelectedClass1)
                {
                case Classification.After:

                    query = query.Where(r => r.Showings.Any(c => c.Date >= SelectedShowTime));

                    break;

                case Classification.Before:

                    query = query.Where(r => r.Showings.Any(c => c.Date < SelectedShowTime));

                    break;
                    //case Classification.Equal:

                    //    query = query.Where(r => r.Showings.Any(c => c.StartTime == SelectedShowTime));

                    //    break;
                }
            }

            List <Movie> MoviesToDisplay = query.ToList();

            MoviesToDisplay.OrderBy(r => r.MovieNum);
            ViewBag.TotalMovies    = db.Movies.Count();
            ViewBag.SelectedMovies = MoviesToDisplay.Count();
            return(View("Index", MoviesToDisplay));
        }