public static List <IFigure> ReadFiguresXmlReader(string way) { using (var xmlReader = new XmlTextReader(way)) { var generalFigure = new List <IFigure>(); while (xmlReader.Read()) { if (!Enum.TryParse(typeof(TypeFigure), xmlReader.Name, out object typeFigure)) { continue; } switch (typeFigure) { case TypeFigure.CirclePaper: CirclePaper paperCircle = ParserFigureUsingXML.ParsePaperCircleXmlElement(xmlReader); generalFigure.Add(paperCircle); break; case TypeFigure.RectanglePaper: RectanglePaper paperRectangle = ParserFigureUsingXML.ParsePaperRectangleXmlElement(xmlReader); generalFigure.Add(paperRectangle); break; case TypeFigure.TrianglePaper: TrianglePaper paperTriangle = ParserFigureUsingXML.ParsePaperTriangleXmlElement(xmlReader); generalFigure.Add(paperTriangle); break; case TypeFigure.CirclePellicle: CirclePellicle skinCircle = ParserFigureUsingXML.ParsePellicleCircleXmlElement(xmlReader); generalFigure.Add(skinCircle); break; case TypeFigure.RectanglePellicle: RectanglePellicle skinRectangle = ParserFigureUsingXML.ParsePellicleRectangleXmlElement(xmlReader); generalFigure.Add(skinRectangle); break; case TypeFigure.TrianglePellicle: TrianglePellicle skinTriangle = ParserFigureUsingXML.ParsePellicleTriangleXmlElement(xmlReader); generalFigure.Add(skinTriangle); break; } xmlReader.Read(); } return(generalFigure); } }
/// <summary> /// The method reads data from a file using XmlReader and returns a list of figures. /// </summary> /// <param name="filePath">Path to the file</param> /// <returns>Figure list</returns> public static List <IFigure> ReadFiguresXmlReader(string filePath) { using (var xmlReader = new XmlTextReader(filePath)) { var figures = new List <IFigure>(); while (xmlReader.Read()) { if (!Enum.TryParse(typeof(TypeFigure), xmlReader.Name, out object typeFigure)) { continue; } switch (typeFigure) { case TypeFigure.PaperCircle: PaperCircle paperCircle = ParserFigureUsingXML.ParseToPaperCircleFromXmlElement(xmlReader); figures.Add(paperCircle); break; case TypeFigure.PaperRectangle: PaperRectangle paperRectangle = ParserFigureUsingXML.ParseToPaperRectangleFromXmlElement(xmlReader); figures.Add(paperRectangle); break; case TypeFigure.PaperTriangle: PaperTriangle paperTriangle = ParserFigureUsingXML.ParseToPaperTriangleFromXmlElement(xmlReader); figures.Add(paperTriangle); break; case TypeFigure.SkinCircle: SkinCircle skinCircle = ParserFigureUsingXML.ParseToSkinCircleFromXmlElement(xmlReader); figures.Add(skinCircle); break; case TypeFigure.SkinRectangle: SkinRectangle skinRectangle = ParserFigureUsingXML.ParseToSkinRectangleFromXmlElement(xmlReader); figures.Add(skinRectangle); break; case TypeFigure.SkinTriangle: SkinTriangle skinTriangle = ParserFigureUsingXML.ParseToSkinTriangleFromXmlElement(xmlReader); figures.Add(skinTriangle); break; } xmlReader.Read(); } return(figures); } }