public static List <Currency> GetList() { if (_List != null && _List.Count <= 0) { return(_List); } List <Currency> lst = new List <Currency>(); try { CurrencyListWithHour temp = new CurrencyListWithHour(); temp = JsonConvert.DeserializeObject <CurrencyListWithHour>(File.ReadAllText(BackupFile)); lst = temp.List; CurrencyHour = temp.CurrencyHour; return(lst); } catch { try { CurrencyListWithHour temp = new CurrencyListWithHour(); string json = "{\"List\":[{\"Name\":\"USD\",\"CurrencyToUSD\":1.0,\"Symbol\":\"\\$\"},{\"Name\":\"GBP\",\"CurrencyToUSD\":0.78637,\"Symbol\":\"£\"},{\"Name\":\"CAD\",\"CurrencyToUSD\":1.32518,\"Symbol\":\"\\$\"},{\"Name\":\"EUR\",\"CurrencyToUSD\":0.881655,\"Symbol\":\"€\"},{\"Name\":\"UAH\",\"CurrencyToUSD\":28.053002,\"Symbol\":\"₴\"},{\"Name\":\"MXN\",\"CurrencyToUSD\":20.521603,\"Symbol\":\"\\$\"},{\"Name\":\"TRY\",\"CurrencyToUSD\":5.390298,\"Symbol\":\"₺\"},{\"Name\":\"CLP\",\"CurrencyToUSD\":670.70435,\"Symbol\":\"\\$\"},{\"Name\":\"SGD\",\"CurrencyToUSD\":1.364696,\"Symbol\":\"\\$\"},{\"Name\":\"CHF\",\"CurrencyToUSD\":0.997596,\"Symbol\":\"CHF\"},{\"Name\":\"RUB\",\"CurrencyToUSD\":66.798103,\"Symbol\":\"₽\"},{\"Name\":\"BRL\",\"CurrencyToUSD\":3.852596,\"Symbol\":\"R\\$\"},{\"Name\":\"AUD\",\"CurrencyToUSD\":1.36315,\"Symbol\":\"\\$\"},{\"Name\":\"INR\",\"CurrencyToUSD\":70.639583,\"Symbol\":\"₹\"},{\"Name\":\"JPY\",\"CurrencyToUSD\":112.780972,\"Symbol\":\"¥\"},{\"Name\":\"IDR\",\"CurrencyToUSD\":14407.25,\"Symbol\":\"Rp\"},{\"Name\":\"SEK\",\"CurrencyToUSD\":9.02172,\"Symbol\":\"kr\"},{\"Name\":\"KRW\",\"CurrencyToUSD\":1111.589914,\"Symbol\":\"₩\"},{\"Name\":\"NZD\",\"CurrencyToUSD\":1.443399,\"Symbol\":\"\\$\"},{\"Name\":\"PLN\",\"CurrencyToUSD\":3.77679,\"Symbol\":\"zł\"},{\"Name\":\"ILS\",\"CurrencyToUSD\":3.733299,\"Symbol\":\"₪\"}],\"CurrencyHour\":\"2018-12-05T00:00:24.0808795Z\"}"; temp = JsonConvert.DeserializeObject <CurrencyListWithHour>(json); lst = temp.List; CurrencyHour = temp.CurrencyHour; return(lst); } catch { } } return(lst); }
public static async void CheckIfNeedUpdateCurrency() { if (CheckIfNeedUpdateCurrencyRunning) { return; } CheckIfNeedUpdateCurrencyRunning = true; List <Currency> lst = new List <Currency>(); GetList(); try { if ((DateHelper.NowIsrael - CurrencyHour).TotalDays <= 3) { CheckIfNeedUpdateCurrencyRunning = false; return; } CurrencyHour = DateHelper.NowIsrael; List <Task <string> > tasksList = new List <Task <string> >(); foreach (string item in CurrencyHelper.NameList) { string keyName = "USD_" + item; tasksList.Add(HttpHelper.HttpGet("https://free.currencyconverterapi.com/api/v6/convert?q=" + keyName + "&compact=y", false)); } await Task.WhenAll(tasksList); foreach (var item in tasksList) { Dictionary <string, dynamic> json = JsonConvert.DeserializeObject <Dictionary <string, dynamic> >(item.Result); string keyName = json.Keys.ToList()[0]; string name = keyName.Replace("USD_", ""); decimal value = decimal.Parse(json[keyName]["val"].ToString()); lst.Add(new Currency() { CurrencyToUSD = value, Name = name, Symbol = CurrencyHelper.CurrencySymbol(name) }); } try { CurrencyListWithHour temp = new CurrencyListWithHour(); temp.List = lst; temp.CurrencyHour = DateHelper.NowIsrael; string jsonBackup = JsonConvert.SerializeObject(temp); File.WriteAllText(BackupFile, jsonBackup); } catch { } } catch { } CheckIfNeedUpdateCurrencyRunning = false; }