Ejemplo n.º 1
0
        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;
        }
Ejemplo n.º 2
0
        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);
        }