private async Task UpdateGraph(object sender, EventArgs e) { try { //fetch latest UV data from service and then update model int?LocIndex = this.arpansaModel.LocIndexValue; if (LocIndex == null) { //no location has been selected. Nothing to paint. return; } MeasuredLocation curLocation = this.arpansaModel.MeasureLocations[LocIndex.Value]; CurrentLocName.Text = curLocation.SiteName; ArpansaUVResponse arpansaUV = await this.arpansaService.GetUVData(curLocation.SiteLongitude.Value, curLocation.SiteLatitude.Value); List <UVIndex> uvIndexes = arpansaService.GenerateUVIndexs(); //update model ArpansaUVData graphData = new ArpansaUVData(arpansaUV); graphData.ReferenceUVs = uvIndexes; this.arpansaModel.ArpansaUVData = graphData; } catch (Exception e1) { await DisplayAlert("Error", e1.Message, "Ok"); } }
public ArpansaUVData(ArpansaUVResponse arpansaResponse) { this.CurrentDateTime = arpansaResponse.CurrentDateTime; this.CurrentUVIndex = arpansaResponse.CurrentUVIndex; this.GraphData = arpansaResponse.GraphData; this.id = arpansaResponse.id; this.MaximumUVLevel = arpansaResponse.MaximumUVLevel; this.MaximumUVLevelDateTime = arpansaResponse.MaximumUVLevelDateTime; this.TableData = arpansaResponse.TableData; ReferenceUVs = null; }
public async Task <ArpansaUVResponse> GetUVData(float longitude, float latitude) { DateTime todayDate = DateTime.Now.Date; string dateString = todayDate.Year.ToString() + "-" + todayDate.Month.ToString() + "-" + todayDate.Day.ToString(); string url = "https://uvdata.arpansa.gov.au/api/uvlevel/"; string getParameters = "longitude=" + longitude.ToString() + "&latitude=" + latitude.ToString() + "&date=" + dateString; string completeUrl = url + "?" + getParameters; HttpResponseMessage httpResponse = await this.httpClient.GetAsync(completeUrl, HttpCompletionOption.ResponseContentRead); string serverResponse = await httpResponse.Content.ReadAsStringAsync(); ArpansaUVResponse arpansaUV = JsonConvert.DeserializeObject <ArpansaUVResponse>(serverResponse); return(arpansaUV); }