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;
 }