public async Task GetTrailName(HikingTrail hikingTrail, HikingTrailJsonInfo hikingTrailJsonInfo) { // Do I need to check Foreign Key ID like we do with User ID? string fulltrailName = hikingTrailJsonInfo.trails[0].name; hikingTrail.TrailName = fulltrailName; await db.SaveChangesAsync(); }
// 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)); }
// ------------------ Get Trail Details -------------------- public async Task GetTrailDetails(Park Park, List <Trail> trailInfo) { var foreignParkId = Park.ParkId; HikingTrail hiking = db.HikingTrails.Where(t => t.ParkId == foreignParkId).FirstOrDefault(); // Matching park id with foreign id for (var i = 0; i < trailInfo.Count; i++) { HikingTrail hikingTrail = new HikingTrail(); // I want to add a new record hikingTrail.HikingApiCode = trailInfo[i].id.ToString(); hikingTrail.ParkId = foreignParkId; hikingTrail.TrailName = trailInfo[i].name.ToString(); hikingTrail.TrailDifficulty = trailInfo[i].difficulty.ToString(); string trailSummary = trailInfo[i].summary; if (trailSummary == null) { hikingTrail.TrailSummary = "No information available at this time."; await db.SaveChangesAsync(); } else { hikingTrail.TrailSummary = trailSummary; await db.SaveChangesAsync(); } // Convert long decimal to a 2 decimal number double TrailLength = trailInfo[i].length; double SimpletrailLength = Math.Round(TrailLength, 2); hikingTrail.TrailLength = SimpletrailLength; // Trail Conditions string trailCondition = trailInfo[i].conditionDetails; if (trailCondition != null) { hikingTrail.TrailCondition = trailCondition; await db.SaveChangesAsync(); } else { hikingTrail.TrailCondition = "No condition status available at this time"; await db.SaveChangesAsync(); } //await GetAverageTrailRating(); // Check to see if it already exists var trailCode = db.HikingTrails.Where(c => c.HikingApiCode == hikingTrail.HikingApiCode).FirstOrDefault(); if (trailCode == null) { db.HikingTrails.Add(hikingTrail); await db.SaveChangesAsync(); } } await db.SaveChangesAsync(); }
public async Task <ActionResult> Create([Bind(Include = "TrailId,TrailName,TrailDifficulty,TrailLat,TrailLng")] HikingTrail trail) { if (ModelState.IsValid) { db.HikingTrails.Add(trail); await db.SaveChangesAsync(); return(RedirectToAction("Index")); } return(View(trail)); }
public async Task ApplyHikingTrailValues(Park park, List <Trail> trailInfo) { foreach (var individualTrail in trailInfo) { HikingTrail hikingTrail = new HikingTrail { TrailName = individualTrail.Name, TrailLength = Math.Round(individualTrail.Length, 2), TrailDifficulty = individualTrail.Difficulty, HikingApiCode = individualTrail.Id, ParkId = park.ParkId }; string trailSummary = individualTrail.Summary; if (trailSummary == null) { hikingTrail.TrailSummary = "No information available at this time."; await _context.SaveChangesAsync(); } else { hikingTrail.TrailSummary = trailSummary; await _context.SaveChangesAsync(); } // Trail Conditions string trailCondition = individualTrail.ConditionDetails; if (trailCondition != null) { hikingTrail.TrailCondition = trailCondition; await _context.SaveChangesAsync(); } else { hikingTrail.TrailCondition = "No condition status available at this time"; await _context.SaveChangesAsync(); } // Check to see if it already exists before adding to database // Write conditional to delete trail if park is deleted //!!!!!! Currently not adding a few parks because I deleted the original park, but not the associated trails var trailCode = _context.HikingTrails.Where(c => c.HikingApiCode == hikingTrail.HikingApiCode).FirstOrDefault(); if (trailCode == null) { _context.HikingTrails.Add(hikingTrail); } await _context.SaveChangesAsync(); } await _context.SaveChangesAsync(); }
// GET: Trails/Details/5 public async Task <ActionResult> Details(int?id, HikingTrail hikingTrail, HikingTrailJsonInfo hikingTrailJsonInfo) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } var trailInfo = await db.HikingTrails.FindAsync(id); await GetTrailName(hikingTrail, hikingTrailJsonInfo); if (trailInfo == null) { return(HttpNotFound()); } return(View(trailInfo)); }