public Car GetCar(int Id) { var file = ConfigurationManager.AppSettings["fileCar"]; var doc = XDocument.Load(file); var result = new Car(); var element = doc.Descendants("Car").FirstOrDefault(x => x.Attribute("Id").Value == Id.ToString()); var type = element.Attribute("Type").Value; switch (type) { case "Truck": result = new TruckCar(); ((TruckCar)result).Capacity = double.Parse(element.Element("Capacity").Value, CultureInfo.GetCultureInfo("en-US")); break; case "Passenger": result = new PassengerCar(); ((PassengerCar)result).Passengers = int.Parse(element.Element("Passengers").Value, CultureInfo.GetCultureInfo("en-US")); break; default: break; } result.Id = int.Parse(element.Attribute("Id").Value); result.Vendor = element.Element("Vendor").Value; result.Model = element.Element("Model").Value; result.Year = int.Parse(element.Element("Year").Value); return result; }
public void SetCar(Car c) { var file = ConfigurationManager.AppSettings["fileCar"]; var element = new XElement("Car", new XAttribute("Id", c.Id), new XElement("Vendor", c.Vendor), new XElement("Model", c.Model), new XElement("Year", c.Year)); if (c is TruckCar) { element.Add(new XAttribute("Type", "Truck"), new XElement("Capacity"), ((TruckCar)c).Capacity.ToString(CultureInfo.GetCultureInfo("en-US"))); } else { element.Add(new XAttribute("Type", "Passenger"), new XElement("Passengers"), ((PassengerCar)c).Passengers.ToString(CultureInfo.GetCultureInfo("en-US"))); } var doc = XDocument.Load(file); doc.Root.Add(element); doc.Save(file); }