예제 #1
0
        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");
            }
        }
예제 #2
0
        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;
        }
예제 #3
0
        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);
        }