示例#1
0
        public static void Main()
        {
            var taxiStation = new TaxiStation();
            var reader      = new Reader();

            reader.ReaderFile(ref taxiStation, "data.xml");
            Console.WriteLine("Все автомобили:");
            Console.WriteLine(taxiStation);
            Console.WriteLine("Общая стоимость:");
            Console.WriteLine(taxiStation.TotalCoast() + "\n");
            Console.WriteLine("Транспорт подходящий условиям:");
            List <Car> temp = taxiStation.SearchCarByMaxSpeed(60, 100);

            foreach (var t in temp)
            {
                Console.WriteLine(t + "\n");
            }

            Console.WriteLine("Добавить(y/n)?");
            if (Console.ReadLine() == "y")
            {
                taxiStation.AddToFile();
                var writer = new Writer();
                writer.WriteFile(ref taxiStation);
            }
            Console.ReadLine();
        }
示例#2
0
        /// <summary>
        /// Сохранение в xml файл
        /// </summary>
        /// <param name="taxiStation">Объект таксопарка</param>
        public void WriteFile(ref TaxiStation taxiStation)
        {
            var doc = new XmlDocument();

            doc.LoadXml("<Taxi>" + "</Taxi>");
            foreach (var t in taxiStation.CarsList)
            {
                XmlElement element = doc.CreateElement("taxi");
                if (t is Truck)
                {
                    var temp = t as Truck;
                    element.SetAttribute("type", "Truck");
                    XmlElement elementLoad = doc.CreateElement("load");
                    XmlText    textLoad    = doc.CreateTextNode(Convert.ToString(temp.Load));
                    doc.DocumentElement.AppendChild(element);
                    element.AppendChild(elementLoad);
                    element.LastChild.AppendChild(textLoad);
                }
                else if (t is Bus)
                {
                    var temp = t as Bus;
                    element.SetAttribute("type", "Bus");
                    XmlElement elementCount = doc.CreateElement("count");
                    XmlText    textCount    = doc.CreateTextNode(Convert.ToString(temp.Count));
                    doc.DocumentElement.AppendChild(element);
                    element.AppendChild(elementCount);
                    element.LastChild.AppendChild(textCount);
                }
                else
                {
                    var temp = t as PassengerCar;
                    element.SetAttribute("type", "PassengerCar");
                    XmlElement elementObem = doc.CreateElement("engineVolume");
                    XmlText    textObem    = doc.CreateTextNode(Convert.ToString(temp.EngineVolume));
                    doc.DocumentElement.AppendChild(element);
                    element.AppendChild(elementObem);
                    element.LastChild.AppendChild(textObem);
                }
                XmlElement elementMake  = doc.CreateElement("make");
                XmlText    textMake     = doc.CreateTextNode(t.Make);
                XmlElement elementModel = doc.CreateElement("model");
                XmlText    textModel    = doc.CreateTextNode(t.Model);
                XmlElement elementSpeed = doc.CreateElement("speed");
                XmlText    textSspeed   = doc.CreateTextNode(Convert.ToString(t.Speed));
                XmlElement elementPrice = doc.CreateElement("price");
                XmlText    textPrice    = doc.CreateTextNode(Convert.ToString(t.Price));
                element.AppendChild(elementMake);
                element.LastChild.AppendChild(textMake);
                element.AppendChild(elementModel);
                element.LastChild.AppendChild(textModel);
                element.AppendChild(elementSpeed);
                element.LastChild.AppendChild(textSspeed);
                element.AppendChild(elementPrice);
                element.LastChild.AppendChild(textPrice);
            }
            doc.Save("data.xml");
        }
示例#3
0
        /// <summary>
        /// Чтение из  xml файла.
        /// </summary>
        /// <param name="taxi">Объект таксопарка.</param>
        /// <param name="fileName">Название файла.</param>
        public void ReaderFile(ref TaxiStation taxi, string fileName)
        {
            var xml  = XDocument.Load(fileName);
            var qwe  = new List <Car>();
            var cars = xml.Root.Descendants("taxi").Select(x => x);

            foreach (var el in cars)
            {
                var name1 = el.Attribute("type").Value;
                switch (name1)
                {
                case "Truck":
                    var tempCarT = new Truck();
                    tempCarT.Make  = Convert.ToString(el.Element("make").Value);
                    tempCarT.Model = Convert.ToString(el.Element("model").Value);
                    tempCarT.Speed = Convert.ToInt32(el.Element("speed").Value);
                    tempCarT.Price = Convert.ToInt32(el.Element("price").Value);
                    tempCarT.Load  = Convert.ToInt32(el.Element("load").Value);
                    qwe.Add(tempCarT);
                    break;

                case "Bus":
                    var tempCarB = new Bus();
                    tempCarB.Make  = Convert.ToString(el.Element("make").Value);
                    tempCarB.Model = Convert.ToString(el.Element("model").Value);
                    tempCarB.Speed = Convert.ToInt32(el.Element("speed").Value);
                    tempCarB.Price = Convert.ToInt32(el.Element("price").Value);
                    tempCarB.Count = Convert.ToInt32(el.Element("count").Value);
                    qwe.Add(tempCarB);
                    break;

                case "PassengerCar":
                    var tempCarP = new PassengerCar();
                    tempCarP.Make         = Convert.ToString(el.Element("make").Value);
                    tempCarP.Model        = Convert.ToString(el.Element("model").Value);
                    tempCarP.Speed        = Convert.ToInt32(el.Element("speed").Value);
                    tempCarP.Price        = Convert.ToInt32(el.Element("price").Value);
                    tempCarP.EngineVolume = Convert.ToDouble(el.Element("engineVolume").Value);
                    qwe.Add(tempCarP);
                    break;

                default: break;
                }
            }
            var taxi1 = new TaxiStation()
            {
                CarsList = qwe.ToList()
            };

            taxi = taxi1;
        }