}//GetMaxMinTides //Using Weather Fisher API https://github.com/RicardsGraudins/Weather-Fisher-API public async static Task<RootObjectExtreme> GetCounty(string county) { var http = new HttpClient(); var url = String.Format("https://worldtidesforecast20171125090607.azurewebsites.net/?county={0}", county); var response = await http.GetAsync(url); var result = await response.Content.ReadAsStringAsync(); RootObjectExtreme deserializedObject = new RootObjectExtreme(); MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(result)); DataContractJsonSerializer ser = new DataContractJsonSerializer(deserializedObject.GetType()); deserializedObject = ser.ReadObject(ms) as RootObjectExtreme; return deserializedObject; }//GetCounty
}//CurrentWeather public async void CurrentTidesExtreme() { try { var currentPosition = await GeoLocationService.GetPosition(); RootObjectExtreme myTides = await Model.WorldTidesExtremeService.GetMaxMinTides(currentPosition.Coordinate.Point.Position.Latitude, currentPosition.Coordinate.Point.Position.Longitude); //WorldTides JSON provides 7 high/low tides - only going to use 4 on this page, ideally 2 high & 2 low for the same day //Set variables for the time of high/low tides var tideTime = ""; var tide = myMethods.getDate(myTides.extremes[0].dt); var tide1 = myMethods.getDate(myTides.extremes[1].dt); var tide2 = myMethods.getDate(myTides.extremes[2].dt); var tide3 = myMethods.getDate(myTides.extremes[3].dt); //Display tide type - high/low TideTypeBlock.Text = myTides.extremes[0].type; TideTypeBlock1.Text = myTides.extremes[1].type; TideTypeBlock2.Text = myTides.extremes[2].type; TideTypeBlock3.Text = myTides.extremes[3].type; //Display the time of high/low tides tideTime = tide.ToString("dddd H:mm"); TideTimeBlock.Text = tideTime; tideTime = tide1.ToString("dddd H:mm"); TideTimeBlock1.Text = tideTime; tideTime = tide2.ToString("dddd H:mm"); TideTimeBlock2.Text = tideTime; tideTime = tide3.ToString("dddd H:mm"); TideTimeBlock3.Text = tideTime; //Display the station that retrieved worldtides data WorldTidesStation.Text = string.Format("WorldTides Station: {0}", myTides.station); }//Try catch { //Popup already displayed by currentWeather }//Catch }//CurrentTidesExtreme
}//ForecastTides public async void ForecastTidesWeatherFisher(string county) { try { RootObjectExtreme myTides = await Model.WorldTidesExtremeService.GetCounty(county); var tideTime = ""; var tide = myMethods.getDate(myTides.extremes[0].dt); var tide1 = myMethods.getDate(myTides.extremes[1].dt); var tide2 = myMethods.getDate(myTides.extremes[2].dt); var tide3 = myMethods.getDate(myTides.extremes[3].dt); var tide4 = myMethods.getDate(myTides.extremes[4].dt); var tide5 = myMethods.getDate(myTides.extremes[5].dt); var tide6 = myMethods.getDate(myTides.extremes[6].dt); //Display tide date tideTime = tide.ToString("ddd dd MMM"); Date0.Text = tideTime; tideTime = tide1.ToString("ddd dd MMM"); Date1.Text = tideTime; tideTime = tide2.ToString("ddd dd MMM"); Date2.Text = tideTime; tideTime = tide3.ToString("ddd dd MMM"); Date3.Text = tideTime; tideTime = tide4.ToString("ddd dd MMM"); Date4.Text = tideTime; tideTime = tide5.ToString("ddd dd MMM"); Date5.Text = tideTime; tideTime = tide6.ToString("ddd dd MMM"); Date6.Text = tideTime; //Display the time of high/low tides tideTime = tide.ToString("t"); Time0.Text = tideTime; tideTime = tide1.ToString("t"); Time1.Text = tideTime; tideTime = tide2.ToString("t"); Time2.Text = tideTime; tideTime = tide3.ToString("t"); Time3.Text = tideTime; tideTime = tide4.ToString("t"); Time4.Text = tideTime; tideTime = tide5.ToString("t"); Time5.Text = tideTime; tideTime = tide6.ToString("t"); Time6.Text = tideTime; //Display tide type Tide0.Text = myTides.extremes[0].type; Tide1.Text = myTides.extremes[1].type; Tide2.Text = myTides.extremes[2].type; Tide3.Text = myTides.extremes[3].type; Tide4.Text = myTides.extremes[4].type; Tide5.Text = myTides.extremes[5].type; Tide6.Text = myTides.extremes[6].type; //Display tide height Height0.Text = String.Format("{0} m", myTides.extremes[0].height); Height1.Text = String.Format("{0} m", myTides.extremes[1].height); Height2.Text = String.Format("{0} m", myTides.extremes[2].height); Height3.Text = String.Format("{0} m", myTides.extremes[3].height); Height4.Text = String.Format("{0} m", myTides.extremes[4].height); Height5.Text = String.Format("{0} m", myTides.extremes[5].height); Height6.Text = String.Format("{0} m", myTides.extremes[6].height); WorldTidesStation.Text = "WorldTides Station: Undefined"; if (myTides.station != null) { WorldTidesStation.Text = string.Format("WorldTides Station: {0}", myTides.station); } }//Try catch { myMethods.WeatherFisherAPIError(); } }//ForestTidesWeatherFisher