private async void ShowChart(ExchangeRateItem obj) { obj.IsChartVisible = !obj.IsChartVisible; if (obj.IsChartVisible) { obj.ChartEntries = await _ratesStore.GetDataForChartGenerationAsync(obj.CurrencyType, obj.ChartDate.Month, obj.ChartDate.Year); } }
public ExchangeRateItem GetExchangeRateApi(string rate) { WebClient webclient = new WebClient(); string url = string.Format("http://api.nbp.pl/api/exchangerates/rates/a/" + rate + "/?format=json"); string ratejson = webclient.DownloadString(url); ExchangeRateItem item = JsonConvert.DeserializeObject <ExchangeRateItem>(ratejson); return(item); }
public PartialViewResult ExchangeRateGadget() { //Lepsze rozwiazanie: pojedyńcze połączenie z api z całą tabelą z wiloma walutami ExchangeRateItem eur = GetExchangeRateApi("eur"); ExchangeRateItem usd = GetExchangeRateApi("usd"); ExchangeRateItem chf = GetExchangeRateApi("chf"); ExchangeRateItem gbp = GetExchangeRateApi("gbp"); ExchangeRateGadgetViewModel model = new ExchangeRateGadgetViewModel() { EUR = eur.rates[0].mid, USD = usd.rates[0].mid, CHF = chf.rates[0].mid, GBP = gbp.rates[0].mid }; return(PartialView(model)); }
public static ExchangeRatesInfo TransformToExchangeRatesInfo(this IEnumerable <HistoryItemExRatesApi> input) { var orderBy = input.OrderBy(r => r.Rate); var min = orderBy.First(); var max = orderBy.Last(); var minExRateItem = new ExchangeRateItem { Date = min.Date.ToString(), Rate = string.Format("{0:0.0000000000}", min.Rate) }; var maxExRateItem = new ExchangeRateItem { Date = max.Date.ToString(), Rate = string.Format("{0:0.0000000000}", max.Rate) }; return(new ExchangeRatesInfo { MinimumExchangeRateItem = minExRateItem, MaximumExchangeRateItem = maxExRateItem, AverageRate = string.Format("{0:0.0000000000}", input.Average(r => r.Rate)) }); }
public static ExchangeRatesInfo TransformToExchangeRatesInfo(this TimeseriesResponseApiExchangerate input, IEnumerable <DateTime> requestedDates) { var requestedDateStrings = requestedDates.TransformToFormattedDateStrings(); var requestedPairs = input.Rates.Select(pair => new { Date = pair.Key, Rate = pair.Value.First().Value }).Where(x => requestedDateStrings.Contains(x.Date)).ToList(); var orderBy = requestedPairs.OrderBy(x => x.Rate); var minPair = orderBy.First(); var maxPair = orderBy.Last(); var minExRateItem = new ExchangeRateItem { Date = minPair.Date.ToString(), Rate = string.Format("{0:0.0000000000}", minPair.Rate) }; var maxExRateItem = new ExchangeRateItem { Date = maxPair.Date.ToString(), Rate = string.Format("{0:0.0000000000}", maxPair.Rate) }; return(new ExchangeRatesInfo { MinimumExchangeRateItem = minExRateItem, MaximumExchangeRateItem = maxExRateItem, AverageRate = string.Format("{0:0.0000000000}", requestedPairs.Average(r => r.Rate)) }); }
private void DecrementChartDate(ExchangeRateItem obj) { obj.ChartDate = obj.ChartDate.AddMonths(-1); }
private bool CanIncrementChartDate(ExchangeRateItem arg) { return(!IsBusy && arg != null && arg.ChartDate.AddMonths(1) <= DateTime.Now); }
private bool CanDecrementDate(ExchangeRateItem arg) { return(!IsBusy && arg != null && arg.ChartDate.AddMonths(-1) >= new DateTime(1999, 1, 1)); }