示例#1
0
        private async Task UpdateCardsAsync()
        {
            try
            {
                bool hasConnection = await CheckInternetConnectionAsync();

                if (!hasConnection)
                {
                    Snackbar.Make(FindViewById(Resource.Id.main_content), "No internet connection.", Snackbar.LengthShort).Show();
                    CallOnReconnect(async delegate { await UpdateCardsAsync(); });
                    return;
                }

                GeoCoords geoCoords = new GeoCoords {
                    Latitude = solarNetwork.Latitude, Longitude = solarNetwork.Longtitude
                };

                PVSystemInfo systemInfo = await PVSystemInfo.FromDBAsync(db, solarNetwork.ID);

                UpdatePVSystemInfo(systemInfo);

                WeatherInfo weatherInfo = await weatherProvider.GetWeatherInfoAsync(geoCoords);

                UpdateWeatherInfoView(weatherInfo);

                ConsumerInfo consumerInfo = await ConsumerInfo.FromDBAsync(db, solarNetwork.ID);

                UpdateConsumerInfo(consumerInfo);

                SystemSummary arraySummary = await GetArraySummaryAsync(weatherInfo);

                UpdateArraySummary(arraySummary, consumerInfo);
            }
            catch (Exception e)
            {
                Log.Error(ToString(), e.ToString());
            }
        }