Пример #1
0
        /// <summary>
        /// Read method through XmlReader
        /// </summary>
        /// <param name="filePath"></param>
        /// <returns></returns>
        public static List <IFigure> XmlRead(String filePath)
        {
            List <IFigure> figures = new List <IFigure>();

            XmlReader reader = XmlReader.Create(filePath);

            while (reader.Read())
            {
                if (reader.Name == "material")
                {
                    String value = reader.ReadInnerXml();
                    switch (value)
                    {
                    case "Paper":
                        FiguresAdd(reader, figures, Material.Paper);
                        reader.Read();
                        Paints paint = (Paints)int.Parse(reader.ReadInnerXml());
                        PaintBrush.PaintFigure(figures[figures.Count - 1], paint);
                        break;

                    case "Film":
                        FiguresAdd(reader, figures, Material.Film);
                        break;
                    }
                }
            }
            reader.Close();
            return(figures);
        }
        /// <summary>
        /// Read method through StreamReadr
        /// </summary>
        /// <param name="filePath"></param>
        /// <returns></returns>
        public static List <IFigure> StreamRead(string filePath)
        {
            List <IFigure> figures = new List <IFigure>();

            StreamReader stream   = new StreamReader(filePath);
            XDocument    document = XDocument.Load(stream);
            XElement     xRoot    = document.Element("figures");

            foreach (XElement xe in xRoot.Elements("figure").ToList())
            {
                switch (xe.Element("material").Value)
                {
                case "Paper":
                    FiguresAdd(xe, figures, Material.Paper);
                    Paints paint = (Paints)int.Parse(xe.Element("color").Value);
                    PaintBrush.PaintFigure(figures[figures.Count - 1], paint);
                    break;

                case "Film":
                    FiguresAdd(xe, figures, Material.Film);
                    break;
                }
            }
            stream.Close();
            return(figures);
        }
Пример #3
0
        public void ImpossibleToPaintTest(Material material, params double[] values)
        {
            TestDelegate func = delegate
            {
                IFigure figure = factory.CreateFigure(material, values);
                PaintBrush.PaintFigure(figure, Paints.Black);
                PaintBrush.PaintFigure(figure, Paints.Blue);
            };

            Assert.Catch <ImpossibleToPaintException>(func);
        }
        public void WriteStreamReadStreamPaper()
        {
            Box box = InitializeFigures();

            box.StreamWritePaper(@"D:\Mega\Learning\Semester5\Training.by\Tasks\Task3\resources\figures.xml");

            box = new Box();
            box.StreamRead(@"D:\Mega\Learning\Semester5\Training.by\Tasks\Task3\resources\paperFigures.xml");
            IFigure figure = factory.GetFigure(Material.Paper, 7);

            PaintBrush.PaintFigure(figure, Paints.Azure);
            Assert.IsTrue(box.GetFigure(1).Equals(figure));
            Assert.AreEqual(box.GetFiguresCount(), 3);
        }
        private Box InitializeFigures()
        {
            Box box = new Box();

            box.AddFigure(factory.GetFigure(Material.Film, 1));
            box.AddFigure(factory.GetFigure(Material.Film, 2, 3));
            box.AddFigure(factory.GetFigure(Material.Film, 4, 5, 6));
            box.AddFigure(factory.GetFigure(Material.Paper, 7));
            PaintBrush.PaintFigure(box.GetFigure(box.GetFiguresCount()), Paints.Azure);
            box.AddFigure(factory.GetFigure(Material.Paper, 8, 9));
            PaintBrush.PaintFigure(box.GetFigure(box.GetFiguresCount()), Paints.Orange);
            box.AddFigure(factory.GetFigure(Material.Paper, 10, 11, 12));
            PaintBrush.PaintFigure(box.GetFigure(box.GetFiguresCount()), Paints.Pink);
            return(box);
        }