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