/// <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); } }