Ejemplo n.º 1
0
        /// <summary>
        /// The method reads data from a file using StreamReader and returns a list of generalFigure.
        /// </summary>
        /// <returns>Figure list</returns>
        public static List <IFigure> ReadFiguresStreamReader(string way)
        {
            using (var streamReader = new StreamReader(way))
            {
                var    generalFigure = new List <IFigure>();
                string line;

                while ((line = streamReader.ReadLine()) != null)
                {
                    string elementContent = line.Trim('<', '>', '/', '\t', ' ');

                    if (!Enum.TryParse(typeof(TypeFigure), elementContent, out object typeFigure))
                    {
                        continue;
                    }

                    switch (typeFigure)
                    {
                    case TypeFigure.CirclePaper:
                        CirclePaper paperCircle = ParserFiguresUsingStream.ParsePaperCircleXmlElement(streamReader);
                        generalFigure.Add(paperCircle);
                        break;

                    case TypeFigure.RectanglePaper:
                        RectanglePaper paperRectangle = ParserFiguresUsingStream.ParsePaperRectXmlElement(streamReader);
                        generalFigure.Add(paperRectangle);
                        break;

                    case TypeFigure.TrianglePaper:
                        TrianglePaper paperTriangle = ParserFiguresUsingStream.ParsePaperTriXmlElement(streamReader);
                        generalFigure.Add(paperTriangle);
                        break;

                    case TypeFigure.CirclePellicle:
                        CirclePellicle skinCircle = ParserFiguresUsingStream.ParsePellicleCircleXmlElement(streamReader);
                        generalFigure.Add(skinCircle);
                        break;

                    case TypeFigure.RectanglePellicle:
                        RectanglePellicle skinRectangle = ParserFiguresUsingStream.ParsePellicleRectangleFXmlElement(streamReader);
                        generalFigure.Add(skinRectangle);
                        break;

                    case TypeFigure.TrianglePellicle:
                        TrianglePellicle skinTriangle = ParserFiguresUsingStream.ParsePellicleTriXmlElement(streamReader);
                        generalFigure.Add(skinTriangle);
                        break;
                    }

                    streamReader.ReadLine();
                }

                return(generalFigure);
            }
        }
        /// <summary>
        /// The method reads data from a file using StreamReader and returns a list of figures.
        /// </summary>
        /// <returns>Figure list</returns>
        public static List <IFigure> ReadFiguresStreamReader(string filePath)
        {
            using (var streamReader = new StreamReader(filePath))
            {
                var    figures = new List <IFigure>();
                string line;

                while ((line = streamReader.ReadLine()) != null)
                {
                    string elementContent = line.Trim('<', '>', '/', '\t', ' ');

                    if (!Enum.TryParse(typeof(TypeFigure), elementContent, out object typeFigure))
                    {
                        continue;
                    }

                    switch (typeFigure)
                    {
                    case TypeFigure.PaperCircle:
                        PaperCircle paperCircle = ParserFiguresUsingStream.ParseToPaperCircleFromXmlElement(streamReader);
                        figures.Add(paperCircle);
                        break;

                    case TypeFigure.PaperRectangle:
                        PaperRectangle paperRectangle = ParserFiguresUsingStream.ParseToPaperRectangleFromXmlElement(streamReader);
                        figures.Add(paperRectangle);
                        break;

                    case TypeFigure.PaperTriangle:
                        PaperTriangle paperTriangle = ParserFiguresUsingStream.ParseToPaperTriangleFromXmlElement(streamReader);
                        figures.Add(paperTriangle);
                        break;

                    case TypeFigure.SkinCircle:
                        SkinCircle skinCircle = ParserFiguresUsingStream.ParseToSkinCircleFromXmlElement(streamReader);
                        figures.Add(skinCircle);
                        break;

                    case TypeFigure.SkinRectangle:
                        SkinRectangle skinRectangle = ParserFiguresUsingStream.ParseToSkinRectangleFromXmlElement(streamReader);
                        figures.Add(skinRectangle);
                        break;

                    case TypeFigure.SkinTriangle:
                        SkinTriangle skinTriangle = ParserFiguresUsingStream.ParseToSkinTriangleFromXmlElement(streamReader);
                        figures.Add(skinTriangle);
                        break;
                    }

                    streamReader.ReadLine();
                }

                return(figures);
            }
        }