コード例 #1
0
        public ExchangeRateList GetExchangeRates()
        {
            if (!IsValidXml)
            {
                return(null);
            }

            try {
                XmlDocument doc = new XmlDocument();
                doc.LoadXml(_xml);

                var extracted = doc["CompactData"]["Header"]["Extracted"].InnerText;
                var dataset   = doc["CompactData"]["DataSet"];
                var group     = dataset["Group"];

                var exchangeRateList = new ExchangeRateList {
                    Currency            = group.GetAttribute("CURRENCY"),
                    CurrencyDenominator = group.GetAttribute("CURRENCY_DENOM"),
                    Unit      = group.GetAttribute("UNIT"),
                    Title     = group.GetAttribute("TITLE_COMPL"),
                    Extracted = DateTime.Parse(extracted),
                };

                foreach (XmlElement exchangeRate in dataset["Series"])
                {
                    var timestamp = exchangeRate.GetAttribute("TIME_PERIOD");
                    var value     = exchangeRate.GetAttribute("OBS_VALUE");

                    exchangeRateList.Add(new ExchangeRate {
                        Timestamp = DateTime.Parse(timestamp),
                        Value     = decimal.Parse(value, NumberStyles.Any, CultureInfo.InvariantCulture)
                    });
                }

                return(exchangeRateList);
            } catch {
                return(null);
            }
        }
コード例 #2
0
 internal static ExchangeRateList getExchangeRateList(HttpResponseMessage response)
 {
     var rateList = new ExchangeRateList();
     var jsonObj = JsonConvert.DeserializeObject<Dictionary<string, object>>(response.Content.ReadAsStringAsync().Result);
     if (jsonObj.ContainsKey("exchange_rates"))
     {
         var ratesArray = JsonConvert.DeserializeObject<List<object>>(jsonObj["exchange_rates"].ToString());
         foreach(var rateObj in ratesArray)
         {
             var rate = new ExchangeRate();
             rate = JsonConvert.DeserializeObject<ExchangeRate>(rateObj.ToString());
             rateList.Add(rate);
         }
     }
     if (jsonObj.ContainsKey("page_context"))
     {
         var pageContext = new PageContext();
         pageContext = JsonConvert.DeserializeObject<PageContext>(jsonObj["page_context"].ToString());
         rateList.page_context = pageContext;
     }
     return rateList;
 }
コード例 #3
0
        internal static ExchangeRateList getExchangeRateList(HttpResponseMessage response)
        {
            var rateList = new ExchangeRateList();
            var jsonObj  = JsonConvert.DeserializeObject <Dictionary <string, object> >(response.Content.ReadAsStringAsync().Result);

            if (jsonObj.ContainsKey("exchange_rates"))
            {
                var ratesArray = JsonConvert.DeserializeObject <List <object> >(jsonObj["exchange_rates"].ToString());
                foreach (var rateObj in ratesArray)
                {
                    var rate = new ExchangeRate();
                    rate = JsonConvert.DeserializeObject <ExchangeRate>(rateObj.ToString());
                    rateList.Add(rate);
                }
            }
            if (jsonObj.ContainsKey("page_context"))
            {
                var pageContext = new PageContext();
                pageContext           = JsonConvert.DeserializeObject <PageContext>(jsonObj["page_context"].ToString());
                rateList.page_context = pageContext;
            }
            return(rateList);
        }
コード例 #4
0
 public ExchangeRateAnalyser(ExchangeRateList list)
 {
     _list = list;
 }