public async Task <IActionResult> GetClosestFullReports(string lat, string lon, int spotCount) { SpotFinder spotFinder = new SpotFinder(); BuoyFinder buoyFinder = new BuoyFinder(); List <Buoy> matchedBuoys = new List <Buoy>(); List <FullBeachReport> fullBeachReport = new List <FullBeachReport>(); List <FullReport> matchedBuoyReports = new List <FullReport>(); List <SpotDistanceFromUser> spotsWithUserDistance = spotFinder.FindSpots(lat, lon, spotCount); foreach (SpotDistanceFromUser obj in spotsWithUserDistance) { string beachLat = obj.Beach.Latitude; string beachLon = obj.Beach.Longtitude; List <Buoy> matchingBuoys = buoyFinder.MatchBuoys(beachLat, beachLon); foreach (Buoy b in matchingBuoys) { matchedBuoys.Add(b); } } matchedBuoys = matchedBuoys.GroupBy(mb => mb.BuoyId).Select(mb => mb.First()).ToList(); foreach (Buoy b in matchedBuoys) { Console.WriteLine("hello"); FullReport fullReport = await Make45DayReport.GetAsync(b); Console.WriteLine("done"); matchedBuoyReports.Add(fullReport); } foreach (SpotDistanceFromUser obj in spotsWithUserDistance) { string beachLat = obj.Beach.Latitude; string beachLon = obj.Beach.Longtitude; List <Buoy> matchingBuoys = buoyFinder.MatchBuoys(beachLat, beachLon); foreach (FullReport r in matchedBuoyReports) { foreach (Buoy b in matchingBuoys) { if (r.NbdcId == b.NbdcId) { FullBeachReport report = new FullBeachReport(obj.Beach, r); fullBeachReport.Add(report); } } } } return(Ok(fullBeachReport)); }
public async Task <IActionResult> GetClosestFullReport(string lat, string lon) { BuoyFinder buoyFinder = new BuoyFinder(); SpotFinder spotFinder = new SpotFinder(); Beach closestSpot = spotFinder.FindSpot(lat, lon); List <Buoy> matchingBuoys = buoyFinder.MatchBuoys(closestSpot.Latitude, closestSpot.Longtitude); List <FullBeachReport> fullBeachReports = new List <FullBeachReport>(); foreach (Buoy b in matchingBuoys) { FullReport fullReport = await Make45DayReport.GetAsync(b); FullBeachReport fullBeachReport = new FullBeachReport(closestSpot, fullReport); fullBeachReports.Add(fullBeachReport); } return(Ok(fullBeachReports)); }
public async Task <IActionResult> GetSingleFullReport(int spotId) { BuoyFinder buoyFinder = new BuoyFinder(); Beach beach = _context.Beach.Single(b => b.BeachId == spotId); List <Buoy> matchingBuoys = buoyFinder.MatchBuoys(beach.Latitude, beach.Longtitude); List <FullBeachReport> fullBeachReports = new List <FullBeachReport>(); foreach (Buoy b in matchingBuoys) { FullReport fullReport = await Make45DayReport.GetAsync(b); FullBeachReport fullBeachReport = new FullBeachReport(beach, fullReport); fullBeachReports.Add(fullBeachReport); } return(Ok(fullBeachReports)); }