Exemple #1
0
        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();
        }