Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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;
        }