// データを取得するメソッド
        public async Task <ExchangeData> AsyncGetWebAPIData(string Country)
        {
            // Listの作成
            exhangeList = new ExchangeData();
            // HttpClientの作成
            HttpClient httpClient = new HttpClient();
            // 非同期でAPIからデータを取得
            Task <string> stringAsync = httpClient.GetStringAsync(API_URL + "?base=" + Country);
            string        result      = await stringAsync;

            // JSON形式のデータをデシリアライズ
            exhangeList = JsonSerializer.Deserialize <ExchangeData>(result);
            if (Country == "EUR")
            {
                exhangeList.rates.Add("EUR", 1);
            }
            // List でデータを返す
            return(exhangeList);
        }
Beispiel #2
0
        // 非同期でデータ取得のメソッドを実行するメソッド
        async void fetchArticles(GetExchangeAPI api)
        {
            try
            {
                // 取得したデータをListに設定
                ExchangeData exchangeList = await api.AsyncGetWebAPIData(Country);

                var items = new List <Data>();

                foreach (KeyValuePair <string, float> value in exchangeList.rates)
                {
                    string CountryName = JapaneseCountryName.ContainsKey(value.Key) ? JapaneseCountryName[value.Key] : value.Key;
                    if (!JapaneseCountryName.ContainsKey(value.Key))
                    {
                        continue;
                    }

                    //ExchangeFlag[value.Key].img.Source = new UriImageSource
                    //{
                    //    CachingEnabled = true,
                    //    Uri = new Uri(ExchangeFlag[value.Key].sUri)
                    //};

                    items.Add(new Data
                    {
                        Text   = value.Key + value.Value.ToString(),
                        Detail = value.Value.ToString(),
                        Icon   = ExchangeFlag[value.Key].sUri
                    });
                }
                listView.ItemsSource = items;
            }
            // エラー表示処理
            catch (System.Exception ex)
            {
                await DisplayAlert("Error", ex.Message.ToString(), "OK");
            }
        }