public override List <RacingHorse> GetRacingHorses(string path) { XmlSerializer xs = new XmlSerializer(typeof(CaulfieldRace)); try { using (StreamReader reader = new StreamReader(path)) { var deserialize = (CaulfieldRace)xs.Deserialize(reader); if (deserialize != null && deserialize.Track != null) { RaceName = deserialize.Track.Name; } else { RaceName = ""; } var horses = new List <RacingHorse>(); if (deserialize != null) { foreach (var horse in deserialize.Races.Race.Horses.Horse) { var h = new RacingHorse { Number = horse.Number, Name = horse.Name, }; horses.Add(h); } } var horsePriceList = deserialize.Races.Race.Prices.Price.Horses.Horse; foreach (var horse in horses) { horse.Price = Convert.ToDecimal(horsePriceList.Find(p => p._Number == horse.Number).Price); } return(horses); } } catch (InvalidOperationException) { throw new InvalidOperationException(); } }
public override List <RacingHorse> GetRacingHorses(string path) { if (string.IsNullOrEmpty(path)) { return(new List <RacingHorse>()); } try { using (StreamReader file = File.OpenText(path)) { var jsonSerializer = new JsonSerializer(); var deserializeResult = (WolferhamptonRace)jsonSerializer.Deserialize(file, typeof(WolferhamptonRace)); var horses = new List <RacingHorse>(); //Get all the participating horses. RaceName = deserializeResult.RawData.FixtureName; foreach (var participants in deserializeResult.RawData.Participants) { var horse = new RacingHorse { Number = participants.Id.ToString(), Name = participants.Name }; horses.Add(horse); } //Get price of the participating horse. foreach (var horse in horses) { horse.Price = Convert.ToDecimal(deserializeResult.RawData.Markets[0].Selections.Find(s => s.Tags.name == horse.Name).Price); } return(horses); } } catch (InvalidOperationException) { throw new InvalidOperationException(); } }