public async Task <ActionResult> GetWeather(int?id, CaptainsModel captainsModel) { var captain = _context.captains.Where(c => c.CaptainId == id).FirstOrDefault(); HttpClient httpClient = new HttpClient(); var url = string.Format( "https://api.openweathermap.org/data/2.5/forecast?zip={0},us&units=imperial&APPID=7d525b2a241057a21adda993b263df5f", captain.ZipCode); HttpResponseMessage response = await httpClient.GetAsync(url); if (response.IsSuccessStatusCode) { string jsonResponse = await response.Content.ReadAsStringAsync(); JObject parsedJson = JObject.Parse(jsonResponse); var predictions = parsedJson["list"].ToArray(); return(View(predictions)); } else { return(View()); } }
public ActionResult DeleteCaptain(int id, CaptainsModel captainsModel) { try { var captainToDelete = _context.captains.Find(id); _context.captains.Remove(captainToDelete); _context.SaveChanges(); return(RedirectToAction(nameof(Index))); } catch { return(View()); } }
public ActionResult CreateCaptain(CaptainsModel captainsModel) { try { var userId = this.User.FindFirstValue(ClaimTypes.NameIdentifier); captainsModel.IdentityUserId = userId; _context.captains.Add(captainsModel); _context.SaveChanges(); return(RedirectToAction(nameof(Index))); } catch { return(View()); } }
public async Task <ActionResult> GetWeather(int?id, CaptainsModel captainsModel) { var captain = _context.captains.Where(c => c.CaptainId == id).FirstOrDefault(); HttpClient httpClient = new HttpClient(); var url = string.Format( "https://api.openweathermap.org/data/2.5/forecast?zip={0},us&units=imperial&APPID=7d525b2a241057a21adda993b263df5f", captain.ZipCode); HttpResponseMessage response = await httpClient.GetAsync(url); if (response.IsSuccessStatusCode) { string jsonResponse = await response.Content.ReadAsStringAsync(); JObject parsedJson = JObject.Parse(jsonResponse); var weather = parsedJson["list"].ToArray(); var mainTemp = weather[0]["main"]["temp"].ToString(); var feelsLike = weather[0]["main"]["feels_like"].ToString(); var maxTemp = weather[0]["main"]["temp_max"].ToString(); var pressure = weather[0]["main"]["pressure"].ToString(); var seaLevel = weather[0]["main"]["sea_level"].ToString(); var windSpeed = weather[0]["wind"]["speed"].ToString(); //var description = weather[0]["weather"]["description"].ToString(); WeatherViewModel weatherViewModel = new WeatherViewModel(); weatherViewModel.mainTemp = mainTemp; weatherViewModel.feelsLike = feelsLike; weatherViewModel.maxTemp = maxTemp; weatherViewModel.pressure = pressure; weatherViewModel.seaLevel = seaLevel; weatherViewModel.windSpeed = windSpeed; return(View(weatherViewModel)); } else { return(View()); } }
public async Task <ActionResult> GetTide(int?id, CaptainsModel captainsModel) { var captain = _context.captains.Where(c => c.CaptainId == id).FirstOrDefault(); HttpClient httpClient = new HttpClient(); var url = string.Format( "https://tidesandcurrents.noaa.gov/api/datagetter?date=today&station={0}&product=predictions&datum=msl&units=english&time_zone=gmt&application=web_services&format=json&interval=hilo", captain.TideStationId); HttpResponseMessage response = await httpClient.GetAsync(url); if (response.IsSuccessStatusCode) { string jsonResponse = await response.Content.ReadAsStringAsync(); JObject parsedJson = JObject.Parse(jsonResponse); var predictions = parsedJson["predictions"].ToArray(); TidePredictionViewModel tidePredictionViewModel = new TidePredictionViewModel(); tidePredictionViewModel.Time = new List <String>(); tidePredictionViewModel.Height = new List <String>(); tidePredictionViewModel.Tide = new List <String>(); for (int i = 0; i < predictions.Length; i++) { var vdata = predictions[i]["t"].ToString(); var height = predictions[i]["v"].ToString(); var tide = predictions[i]["type"].ToString(); tidePredictionViewModel.Time.Add(vdata); tidePredictionViewModel.Height.Add(height); tidePredictionViewModel.Tide.Add(tide); } return(View(tidePredictionViewModel)); } else { return(View()); } }
public async Task <IActionResult> EditCaptain(int id, CaptainsModel captainsModel) { if (id != captainsModel.CaptainId) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(captainsModel); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { } return(RedirectToAction("Index")); } // return View(captainsModel); return(RedirectToAction("Index")); }
// GET: Captain/Create public ActionResult CreateCaptain() { CaptainsModel captainsModel = new CaptainsModel(); return(View(captainsModel)); }