private CuacaObject FetchCuaca(string lokasi) { try { // Dapatkan info cuaca string weatherPath = $"weather?q={lokasi}&lang=id{GetUnitParameter()}"; IRestResponse weatherResponse = OpenWeatherMapApiGet(weatherPath); CuacaObject cuacaObject = JsonSerializer.Deserialize <CuacaObject>(weatherResponse.Content); // Atur format menjadi en-US agar menggunakan tanda titik sebagai pemisah desimal string latitude = cuacaObject.coordinate.lat.ToString(CultureInfo.CreateSpecificCulture("en-US")); string longitude = cuacaObject.coordinate.lon.ToString(CultureInfo.CreateSpecificCulture("en-US")); // Dapatkan info indeks UV string uvPath = $"uv?lat={latitude}&lng={longitude}"; IRestResponse uvResponse = OpenUvApiGet(uvPath); cuacaObject.uvIndex = JsonSerializer.Deserialize <UVParentObject>(uvResponse.Content); // Asumsikan segala eror yang terjadi disebabkan oleh limit API (indeks UV) if (cuacaObject.uvIndex.error != "") { MessageBox.Show("Tidak bisa memperoleh data indeks UV karena telah melebihi batas harian penggunaan API OpenUV. (Pesan eror: " + cuacaObject.uvIndex.error + ")", "Request API Gagal", MessageBoxButton.OK, MessageBoxImage.Error); } return(cuacaObject); } catch { MessageBox.Show("Gagal memperoleh informasi cuaca", "Galat", MessageBoxButton.OK, MessageBoxImage.Error); return(new CuacaObject()); } }
private bool LokasiValid(string lokasi) { // Lakukan uji coba pengambilan data cuaca CuacaObject checkObject = FetchCuaca(lokasi); // Check HTTP 200 OK return code if (checkObject.httpStatusCode == 200) { return(true); } return(false); }
public void RefreshCuaca() { _cuacaObject = null; }