public async Task <ActionResult> Details(int id, ApiKeys apiKeys)
        {
            Park park = await db.Parks.FindAsync(id);

            park.CurrentWeatherInfo             = new CurrentWeatherInfo(); // Instantiate blank spot for data to bind to
            park.CurrentWeatherInfo.temperature = 876;                      // Doesn't matter what's here, will overwrite anyway
            park.Trails = db.HikingTrails.Where(i => i.ParkId == id).ToList();
            await RunBasicParkJson();
            await RunWeatherJson(apiKeys, park);
            await RunHikingJson(apiKeys, park);
            await GetApiKey();
            await GetParkMarker(id);
            await TrailRatings();

            First();
            //Second();

            ParkTrailRatingViewModel ratingFilter = new ParkTrailRatingViewModel();

            ratingFilter.StarRatings = await db.StarRatings.ToListAsync();

            var        fullList      = ratingFilter.StarRating; // All ratings to reference against
            List <int> ratingOptions = new List <int>();        // No foreach because I am passing all options

            ratingFilter.StarRating = new SelectList(ratingOptions.Select(p => p).ToList());
            ratingFilter.Park       = park; // Pass Park ID so it isn't null on the HttpPost

            ratingFilter.StarRating = new SelectList(ratingFilter.StarRatings.Select(p => p.IndividualStarRating).ToList());
            return(View(ratingFilter));
        }
        // GET: Parks/Details/5
        public async Task <ActionResult> Details(int?id, ApiKeys apiKeys, ParkTrailRatingViewModel ratingFilter)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Park park = await db.Parks.FindAsync(id);

            park.CurrentWeatherInfo             = new CurrentWeatherInfo(); // Instantiate blank spot for data to bind to
            park.CurrentWeatherInfo.temperature = 876;                      // Doesn't matter what's here, will overwrite anyway
            park.Trails = db.HikingTrails.Where(i => i.ParkId == id).ToList();
            await RunBasicParkJson();
            await RunWeatherJson(apiKeys, park);
            await RunHikingJson(apiKeys, park);
            await GetApiKey();
            await GetParkMarker(id);
            await TrailRatings();

            First();
            //Second();
            if (park == null)
            {
                return(HttpNotFound());
            }

            // ====== Adding New Rating to trails =====================
            HikerTrailRating hikerTrailRating = new HikerTrailRating(); // new HikerTrailRating rating

            // --- Find person logged in -------------
            //CheckLoggedInUser();
            int hikerNum = CheckUserID();        // Setting variable from returned value

            hikerTrailRating.HikerId = hikerNum; // Add hiker's ID to Junction Table rating

            // -- HOW DO I PASS TRAIL ID THROUGH ON SELECTION? ----------------
            //List<HikingTrail> hikingTrail = await db.HikerTrailRatings.FindAsync(ratingFilter.HikingTrail).Where(t => t.);
            HikingTrail HikingTrail = await db.HikingTrails.FindAsync();

            HikingTrail hikingTrail = db.HikingTrails.Where(t => t.TrailId == id).FirstOrDefault(); // TAKING FIRST TRAIL ALWAYS // List of trails that match only to the current park

            hikerTrailRating.TrailId = hikingTrail.TrailId;

            // Figure out a way to add Rating to Junction Table
            // Find Hiker's selected rating

            ratingFilter.StarRatings = await db.StarRatings.Where(p => p.IndividualStarRating == ratingFilter.SelectedRating).ToListAsync(); // Matching Park database park name with filter's Selection

            ratingFilter.StarRating = new SelectList(ratingFilter.StarRatings.Select(p => p.IndividualStarRating).ToList());
            var hikerSelectedRating = ratingFilter.SelectedRating;

            hikerTrailRating.IndividualRating = hikerSelectedRating; // Add rating to Junction Table Rating

            db.HikerTrailRatings.Add(hikerTrailRating);              // Save results to database
            db.SaveChanges();
            return(View(park));
        }