public JsonResult GetAllPackages(string location) { IEnumerable <Package> allPackages = new List <Package>(); List <PackageWithRating> packagesWithRating = new List <PackageWithRating>(); if (String.IsNullOrEmpty(location)) { allPackages = _packageRepo.Query(p => p.IsActive == true); } else { allPackages = _packageRepo.Query(p => p.IsActive == true && p.Location.Contains(location)); } foreach (var item in allPackages) { PackageWithRating packageWithRating = new PackageWithRating { Package = item, Rating = _feedbackRepo.Query(f => f.PackageId == item.PackageId).Select(f => f.Rating).DefaultIfEmpty(0).Average(), NumberOfFeedbacks = _feedbackRepo.Query(f => f.PackageId == item.PackageId).Count() }; packagesWithRating.Add(packageWithRating); } /*return Json(_packageRepo.Query(p => p.IsActive == true && p.Location.Contains(location)));*/ /*return Json(_packageRepo.Query(p => p.Location.Contains(location)));*/ return(Json(packagesWithRating)); }
public IActionResult Index() { //IEnumerable<Package> allPackages = _packageRepo.Query(p => p.IsActive == true).Take(5); IEnumerable <Package> allPackages = _packageRepo.Query(p => p.IsActive == true); List <PackageWithRating> packagesWithRating = new List <PackageWithRating>(); if ((allPackages != null) && (allPackages.Count() > 0)) { foreach (var item in allPackages) { PackageWithRating packageWithRating = new PackageWithRating { Package = item, Rating = _feedbackRepo.Query(f => f.PackageId == item.PackageId).Select(f => f.Rating).DefaultIfEmpty(0).Average(), NumberOfFeedbacks = _feedbackRepo.Query(f => f.PackageId == item.PackageId).Count() }; packagesWithRating.Add(packageWithRating); } } HomeIndexViewModel vm = new HomeIndexViewModel { Destination = "", //5 best performing packages BestPackagesWithRatings = packagesWithRating.OrderByDescending(p => p.Rating).Take(5) }; return(View(vm)); //return View(); }