public ActionResult DisplaySearchResults(DateTime?datSelectedDate, String SearchMovieTitle, String SearchTagline, int[] SearchGenre, String SelectedYear, MPAArating SelectedMPAARating, String SearchActor, YearRank SelectedSortOrder, String StarCount, Option SelectedOption) { //if they selected a search string, limit results to only repos that meet the criteria //create query var query = from m in db.Showings select m; if (datSelectedDate != null) { //needed truncate time method because we were comparing a showdate with a specific time compared to one without just a date query = query.Where(m => DbFunctions.TruncateTime(m.ShowDate) == datSelectedDate); } //check to see if they selected something if (SearchMovieTitle != null) { query = query.Where(m => m.SponsoringMovie.MovieTitle.Contains(SearchMovieTitle)); } if (SearchTagline != null) { query = query.Where(m => m.SponsoringMovie.Tagline.Contains(SearchTagline)); } if (SearchActor != null) { query = query.Where(m => m.SponsoringMovie.Actor.Contains(SearchActor)); } if (SearchGenre != null) { foreach (int GenreID in SearchGenre) { //Genre GenreToFind = db.Genres.Find(GenreID); query = query.Where(m => m.SponsoringMovie.Genres.Select(g => g.GenreID).Contains(GenreID)); } } switch (SelectedMPAARating) { case MPAArating.G: query = query.Where(m => m.SponsoringMovie.MPAAratings == MPAArating.G); break; case MPAArating.PG: query = query.Where(m => m.SponsoringMovie.MPAAratings == MPAArating.PG); break; case MPAArating.PG13: query = query.Where(m => m.SponsoringMovie.MPAAratings == MPAArating.PG13); break; case MPAArating.R: query = query.Where(m => m.SponsoringMovie.MPAAratings == MPAArating.R); break; case MPAArating.Unrated: query = query.Where(m => m.SponsoringMovie.MPAAratings == MPAArating.Unrated); break; case MPAArating.All: break; } if (SelectedYear != null && SelectedYear != "") { Int32 intYear; try { intYear = Convert.ToInt32(SelectedYear); } catch { ViewBag.Message = SelectedYear + "is not a valid year, please try again!"; ViewBag.AllGenres = GetAllGenres(); return(View("DetailedSearch")); } switch (SelectedSortOrder) { case YearRank.GreaterThan: query = query.Where(r => r.SponsoringMovie.ReleaseDate.Year >= intYear); break; case YearRank.LesserThan: query = query.Where(r => r.SponsoringMovie.ReleaseDate.Year <= intYear); break; } //query = query.Where(m => m.ReleaseDate.Year == intYear); } if (StarCount != null && StarCount != "") { Decimal decStar; try { decStar = Convert.ToDecimal(StarCount); } catch { //not sure which viewbag to put here ViewBag.AllMovies = GetAllMovies(); return(View("DetailedSearch")); } //switch (SelectedOption) //{ // case Option.GreaterThan: // query = query.Where(r => r.SponsoringMovie.AverageUserRating > decStar); // break; // case Option.LessThan: // query = query.Where(r => r.SponsoringMovie.AverageUserRating <= decStar); // break; //} } List <Showing> SelectedShowings = query.ToList(); //order list SelectedShowings.OrderByDescending(m => m.SponsoringMovie.MovieTitle); ViewBag.AllShowings = db.Showings.Count(); ViewBag.SelectedShowings = SelectedShowings.Count(); //send list to view return(View("Index", SelectedShowings)); }
public ActionResult DisplaySearchResults(DateTime?FirstDate, DateTime?SecondDate, int[] SearchShowingMovies, MPAArating SelectedMPAARating /*, DateTime? FirsTime, DateTime? SecondTime*/) { var query = from t in db.Tickets where t.Order.Orderstatus == OrderStatus.Completed select t; if (SearchShowingMovies != null) { foreach (int MovieID in SearchShowingMovies) { Movie MovieToFind = db.Movies.Find(MovieID); query = query.Where(t => t.Showing.SponsoringMovie.MovieID == MovieToFind.MovieID); } } switch (SelectedMPAARating) { case MPAArating.G: query = query.Where(t => t.Movie.MPAAratings == MPAArating.G); break; case MPAArating.PG: query = query.Where(t => t.Movie.MPAAratings == MPAArating.PG); break; case MPAArating.PG13: query = query.Where(t => t.Movie.MPAAratings == MPAArating.PG13); break; case MPAArating.R: query = query.Where(t => t.Movie.MPAAratings == MPAArating.R); break; case MPAArating.Unrated: query = query.Where(t => t.Movie.MPAAratings == MPAArating.Unrated); break; case MPAArating.All: break; } if (FirstDate != null && SecondDate != null) { query = query.Where(t => DbFunctions.TruncateTime(t.Showing.ShowDate) >= FirstDate && DbFunctions.TruncateTime(t.Showing.ShowDate) <= SecondDate); } List <Ticket> SelectedTickets = query.ToList(); //List<Ticket> allTickets = db.Tickets.Where(t => t.Order.Orderstatus == OrderStatus.Completed).ToList(); List <Order> allOrders = db.Orders.Where(o => o.Orderstatus == OrderStatus.Completed).ToList(); MovieReportVM tivm = new MovieReportVM(); Decimal tax = 0.0825m; foreach (Ticket td in SelectedTickets) { tivm.NumberOfPurchase += 1; tivm.Revenue += (td.TicketPrice + (td.TicketPrice * tax)); } //return View(tivm); return(View("DisplaySearchResults", tivm)); }
public ActionResult DisplaySearchResults(String SearchMovieTitle, String SearchTagline, int[] SearchGenre, String SelectedYear, MPAArating SelectedMPAARating, String SearchActor, YearRank SelectedSortOrder) { //if they selected a search string, limit results to only repos that meet the criteria //create query var query = from m in db.Movies select m; //check to see if they selected something if (SearchMovieTitle != null) { query = query.Where(m => m.MovieTitle.Contains(SearchMovieTitle)); } if (SearchTagline != null) { query = query.Where(m => m.Tagline.Contains(SearchTagline)); } if (SearchActor != null) { query = query.Where(m => m.Actor.Contains(SearchActor)); } if (SearchGenre != null) { foreach (int GenreID in SearchGenre) { //Genre GenreToFind = db.Genres.Find(GenreID); query = query.Where(m => m.Genres.Select(g => g.GenreID).Contains(GenreID)); } } switch (SelectedMPAARating) { case MPAArating.G: query = query.Where(m => m.MPAAratings == MPAArating.G); break; case MPAArating.PG: query = query.Where(m => m.MPAAratings == MPAArating.PG); break; case MPAArating.PG13: query = query.Where(m => m.MPAAratings == MPAArating.PG13); break; case MPAArating.R: query = query.Where(m => m.MPAAratings == MPAArating.R); break; case MPAArating.Unrated: query = query.Where(m => m.MPAAratings == MPAArating.Unrated); break; case MPAArating.All: break; } if (SelectedYear != null && SelectedYear != "") { Int32 intYear; try { intYear = Convert.ToInt32(SelectedYear); } catch { ViewBag.Message = SelectedYear + "is not a valid year, please try again!"; ViewBag.AllGenres = GetAllGenres(); return(View("DetailedSearch")); } switch (SelectedSortOrder) { case YearRank.GreaterThan: query = query.Where(r => r.ReleaseDate.Year >= intYear); break; case YearRank.LesserThan: query = query.Where(r => r.ReleaseDate.Year <= intYear); break; } //query = query.Where(m => m.ReleaseDate.Year == intYear); } List <Movie> SelectedMovies = query.ToList(); //order list SelectedMovies.OrderByDescending(m => m.MovieTitle); ViewBag.AllMovies = db.Movies.Count(); ViewBag.SelectedMovies = SelectedMovies.Count(); //send list to view return(View("Index", SelectedMovies)); }