// GET: MoviesReportAjax public ActionResult Index() { IQueryable <MovieReportLeftOuterJoinModel> leftOuterJoinQuery; List <MovieReportLeftOuterJoinModel> leftOuterJoinList = null; leftOuterJoinQuery = movieReportService.GetLeftOuterJoinquery(); leftOuterJoinList = leftOuterJoinQuery.ToList(); List <SelectListItem> selects = new List <SelectListItem>(); for (int year = DateTime.Now.Year + 1; year >= 1930; year--) { selects.Add(new SelectListItem() { Value = year.ToString(), Text = year.ToString() }); } MoviesReportAjaxIndexViewModel viewModel = new MoviesReportAjaxIndexViewModel() { LeftOuterJoinList = leftOuterJoinList, ProductionYearMultiSelectList = new MultiSelectList(selects, "Value", "Text") }; return(View(viewModel)); }
// GET: MoviesReport //public ActionResult Index(int? OnlyMatchedValue = null) public ActionResult Index(MoviesReportIndexViewModel moviesReport) { IQueryable <MovieReportsInnerJoinModel> innerJoinQuery; IQueryable <MovieReportLeftOuterJoinModel> leftOuterJoinQuery; List <MovieReportsInnerJoinModel> innerJoinList = null; List <MovieReportLeftOuterJoinModel> leftOuterJoinList = null; if (moviesReport.OnlyMatchedValue == 1) { innerJoinQuery = movieReportService.GetInnerJoinQuery(); if (!string.IsNullOrWhiteSpace(moviesReport.MovieName)) { innerJoinQuery = innerJoinQuery.Where(model => model.MovieName.ToUpper().Contains(moviesReport.MovieName.ToUpper().Trim())); } if (moviesReport.ProductionYears != null && moviesReport.ProductionYears.Count > 0) { innerJoinQuery = innerJoinQuery.Where(model => moviesReport.ProductionYears.Contains(model.MovieProductionYear)); } double boxOfficeReturn1; double boxOfficeReturn2; if (!string.IsNullOrWhiteSpace(moviesReport.BoxOfficeReturn1)) { if (double.TryParse(moviesReport.BoxOfficeReturn1.Trim().Replace(",", "."), NumberStyles.Any, new CultureInfo("en"), out boxOfficeReturn1)) { innerJoinQuery = innerJoinQuery.Where(model => model.MovieBoxOfficeReturnValue >= boxOfficeReturn1); } } if (!string.IsNullOrWhiteSpace(moviesReport.BoxOfficeReturn2)) { if (double.TryParse(moviesReport.BoxOfficeReturn2.Trim().Replace(",", "."), NumberStyles.Any, new CultureInfo("en"), out boxOfficeReturn2)) { innerJoinQuery = innerJoinQuery.Where(model => model.MovieBoxOfficeReturnValue <= boxOfficeReturn2); } } DateTime reviewDate1; DateTime reviewDate2; if (!string.IsNullOrWhiteSpace(moviesReport.ReviewDate1)) { reviewDate1 = DateTime.Parse(moviesReport.ReviewDate1, new CultureInfo("en")); innerJoinQuery = innerJoinQuery.Where(model => model.ReviewDateValue >= reviewDate1); } if (!string.IsNullOrWhiteSpace(moviesReport.ReviewDate2)) { reviewDate2 = DateTime.Parse(moviesReport.ReviewDate2, new CultureInfo("en")); innerJoinQuery = innerJoinQuery.Where(model => model.ReviewDateValue <= reviewDate2); } innerJoinList = innerJoinQuery.ToList(); } else { leftOuterJoinQuery = movieReportService.GetLeftOuterJoinquery(); if (!string.IsNullOrWhiteSpace(moviesReport.MovieName)) { leftOuterJoinQuery = leftOuterJoinQuery.Where(model => model.MovieName.ToUpper().Contains(moviesReport.MovieName.ToUpper().Trim())); } if (moviesReport.ProductionYears != null && moviesReport.ProductionYears.Count > 0) { leftOuterJoinQuery = leftOuterJoinQuery.Where(model => moviesReport.ProductionYears.Contains(model.MovieProductionYear)); } double boxOfficeReturn1; double boxOfficeReturn2; if (!string.IsNullOrWhiteSpace(moviesReport.BoxOfficeReturn1)) { if (double.TryParse(moviesReport.BoxOfficeReturn1.Trim().Replace(",", "."), NumberStyles.Any, new CultureInfo("en"), out boxOfficeReturn1)) { leftOuterJoinQuery = leftOuterJoinQuery.Where(model => model.MovieBoxOfficeReturnValue >= boxOfficeReturn1); } } if (!string.IsNullOrWhiteSpace(moviesReport.BoxOfficeReturn2)) { if (double.TryParse(moviesReport.BoxOfficeReturn2.Trim().Replace(",", "."), NumberStyles.Any, new CultureInfo("en"), out boxOfficeReturn2)) { leftOuterJoinQuery = leftOuterJoinQuery.Where(model => model.MovieBoxOfficeReturnValue <= boxOfficeReturn2); } } DateTime reviewDate1; DateTime reviewDate2; if (!string.IsNullOrWhiteSpace(moviesReport.ReviewDate1)) { reviewDate1 = DateTime.Parse(moviesReport.ReviewDate1, new CultureInfo("en")); leftOuterJoinQuery = leftOuterJoinQuery.Where(model => model.ReviewDateValue >= reviewDate1); } if (!string.IsNullOrWhiteSpace(moviesReport.ReviewDate2)) { reviewDate2 = DateTime.Parse(moviesReport.ReviewDate2, new CultureInfo("en")); leftOuterJoinQuery = leftOuterJoinQuery.Where(model => model.ReviewDateValue <= reviewDate2); } leftOuterJoinList = leftOuterJoinQuery.ToList(); } List <SelectListItem> onlyMatchedSelectListItems = new List <SelectListItem>() { new SelectListItem() { Value = "1", Text = "Yes" }, new SelectListItem() { Value = "0", Text = "No" } }; List <SelectListItem> productionYearSelectListItems = new List <SelectListItem>(); for (int year = DateTime.Now.Year + 1; year >= 1930; year--) { productionYearSelectListItems.Add(new SelectListItem() { Value = year.ToString(), Text = year.ToString() }); } moviesReport.InnerJoinList = innerJoinList; moviesReport.LeftOuterJoinList = leftOuterJoinList; moviesReport.OnlyMatchedSelectList = new SelectList(onlyMatchedSelectListItems, "Value", "Text"); moviesReport.ProductionYearMultiSelectList = new MultiSelectList(productionYearSelectListItems, "Value", "Text"); if (Session["MoviesReport"] != null) { Session.Remove("MoviesReport"); } Session["MoviesReport"] = moviesReport; return(View(moviesReport)); }