private List<Security> ParseSecurities(XDocument doc) { if (doc == null) return null; List<Security> securities = new List<Security>(); IEnumerable<XElement> quotes = doc.Root.Descendants("finance"); foreach (var quote in quotes) { var symbol = GetAttributeData(quote, "symbol"); var exchange = GetAttributeData(quote, "exchange"); var last = GetDecimal(quote, "last"); var change = GetDecimal(quote, "change"); var percentChange = GetDecimal(quote, "perc_change"); var company = GetAttributeData(quote, "company"); //if (exchange.ToUpper() == "MUTF") //handle mutual fund if (exchange.ToUpper() == "NASDAQ") //handle mutual fund { var mf = new MutualFund(); mf.Symbol = symbol; mf.Last = last; mf.Change = change; mf.PercentChange = percentChange; mf.RetrievalDateTime = DateTime.Now; mf.Company = company; securities.Add(mf); } } return securities; }
private List<Security> ParseSecurities(XDocument doc) { if (doc == null) return null; List<Security> securities = new List<Security>(); IEnumerable<XElement> quotes = doc.Root.Descendants("finance"); foreach (var quote in quotes) { var symbol = GetAttributeData(quote, "symbol"); var exchange = GetAttributeData(quote, "exchange"); var last = GetDecimal(quote, "last"); var change = GetDecimal(quote, "change"); var percentChange = GetDecimal(quote, "perc_change"); var company = GetAttributeData(quote, "company"); if (exchange.ToUpper() == "MUTF") //Handle mutual fund { var mf = new MutualFund(); mf.Symbol = symbol; mf.Last = last; mf.Change = change; mf.PercentChange = percentChange; mf.RetrievalDateTime = DateTime.Now; mf.Company = company; securities.Add(mf); } else //Handle stock { var stock = new Stock(); stock.Symbol = symbol; stock.Last = last; stock.Change = change; stock.PercentChange = percentChange; stock.RetrievalDateTime = DateTime.Now; stock.Company = company; stock.Exchange = new Exchange { Title = exchange }; stock.DayHigh = GetDecimal(quote, "high"); stock.DayLow = GetDecimal(quote, "low"); stock.Volume = GetDecimal(quote, "volume"); stock.AverageVolume = GetDecimal(quote, "avg_volume"); stock.MarketCap = GetDecimal(quote, "market_cap"); stock.Open = GetDecimal(quote, "open"); securities.Add(stock); } } return securities; }