Example #1
0
        public async Task <HistoryRatesDataObject?> GetHistoryRates(string baseCurrency, string target, DateTime startDate, DateTime endDate)
        {
            string url    = $"https://api.exchangeratesapi.io/history?start_at={startDate.ToString("yyyy-MM-dd")}&end_at={endDate.ToString("yyyy-MM-dd")}&base={baseCurrency}&symbols={target}";
            var    result = await _httpClient.GetAsync(url);

            if (result?.Content == null)
            {
                return(null);
            }
            var content = await result.Content.ReadAsStringAsync();


            var ratesToken = JObject.Parse(content).GetValue("rates").ToList();
            List <JProperty> properties = new List <JProperty>();

            ratesToken.ForEach(x => properties.Add((JProperty)x));
            Dictionary <string, float> keyValuePairs = new Dictionary <string, float>();

            properties.ForEach(x => keyValuePairs.Add(x.Name, (float)x.Value[target]));
            HistoryRatesDataObject historyRatesDataObject = new HistoryRatesDataObject {
                HistoryRates = keyValuePairs, Base = baseCurrency, end_at = endDate.ToString("yyyy-MM-dd"), start_at = startDate.ToString("yyyy-MM-dd"), Target = target
            };

            return(historyRatesDataObject);
        }
Example #2
0
        public async Task AddRecordAsync(HistoryRatesDataObject record)
        {
            await CheckInit(Connection);

            record.DatabaseKey = record.GenerateDBKey();
            record.SerializeDictionary();
            await Connection.InsertAsync(record);
        }
 public LocalRateViewModel(HistoryRatesDataObject dataObj)
 {
     CurrencyGridViewModel = new CurrencyDataGridViewModel();
     _dataObj = dataObj;
     Title    = $"1 {_dataObj.Base} = x {_dataObj.Target}   - dane lokalne";
 }