/// <summary> /// Create new figure /// </summary> /// <param name="material">Material of new figure</param> /// <param name="form">Form of new figure</param> /// <param name="ps">Array of other params</param> /// <returns>Figure</returns> public IFigure CreateFigure(Material material, Form form, params float [] ps) { IFigure figure; switch (material) { case Material.Film: { switch (form) { case Form.Circle: { if (ps.Length == 1) { figure = new CircleFilm(ps[0]); break; } else { throw new Exception("Wrong input parameters"); } } case Form.Rectangle: { if (ps.Length == 2) { figure = new RectangleFilm(ps[0], ps[1]); break; } else { throw new Exception("Wrong input parameters"); } } case Form.Square: { if (ps.Length == 1) { figure = new SquareFilm(ps[0]); break; } else { throw new Exception("Wrong input parameters"); } } case Form.Triangle: { if (ps.Length == 3) { figure = new TriangleFilm(ps[0], ps[1], ps[2]); break; } else { throw new Exception("Wrong input parameters"); } } default: throw new Exception("Wrong input Form"); } break; } case Material.Paper: { switch (form) { case Form.Circle: { if (ps.Length == 1) { figure = new CirclePaper(ps[0]); break; } else { throw new Exception("Wrong input parameters"); } } case Form.Rectangle: { if (ps.Length == 2) { figure = new RectanglePaper(ps[0], ps[1]); break; } else { throw new Exception("Wrong input parameters"); } } case Form.Square: { if (ps.Length == 1) { figure = new SquarePaper(ps[0]); break; } else { throw new Exception("Wrong input parameters"); } } case Form.Triangle: { if (ps.Length == 3) { figure = new TrianglePaper(ps[0], ps[1], ps[2]); break; } else { throw new Exception("Wrong input parameters"); } } default: throw new Exception("Wrong input Form"); } break; } default: throw new Exception("Wrong input Material"); } return(figure); }
/// <summary> /// Method Write /// </summary> /// <param name="intoBox">Input List</param> public void Write(string output, List <IFigure> intoBox) { XmlWriter xmlWriter = XmlWriter.Create(output); xmlWriter.WriteStartDocument(); xmlWriter.WriteStartElement("Boxs"); foreach (var i in intoBox) { switch (i.GetType().Name) { case "CircleFilm": { CircleFilm c1 = (CircleFilm)i; xmlWriter.WriteStartElement("figure"); xmlWriter.WriteAttributeString("type", "Circle"); xmlWriter.WriteStartElement("material"); xmlWriter.WriteString("Film"); xmlWriter.WriteEndElement(); xmlWriter.WriteStartElement("color"); xmlWriter.WriteString("None"); xmlWriter.WriteEndElement(); xmlWriter.WriteStartElement("diameter"); xmlWriter.WriteString("" + c1.Diameter); xmlWriter.WriteEndElement(); xmlWriter.WriteEndElement(); break; } case "RectangleFilm": { RectangleFilm r1 = (RectangleFilm)i; xmlWriter.WriteStartElement("figure"); xmlWriter.WriteAttributeString("type", "Rectangle"); xmlWriter.WriteStartElement("material"); xmlWriter.WriteString("Film"); xmlWriter.WriteEndElement(); xmlWriter.WriteStartElement("color"); xmlWriter.WriteString("None"); xmlWriter.WriteEndElement(); xmlWriter.WriteStartElement("height"); xmlWriter.WriteString("" + r1.Height); xmlWriter.WriteEndElement(); xmlWriter.WriteStartElement("width"); xmlWriter.WriteString("" + r1.Width); xmlWriter.WriteEndElement(); xmlWriter.WriteEndElement(); break; } case "SquareFilm": { SquareFilm s1 = (SquareFilm)i; xmlWriter.WriteStartElement("figure"); xmlWriter.WriteAttributeString("type", "Square"); xmlWriter.WriteStartElement("material"); xmlWriter.WriteString("Film"); xmlWriter.WriteEndElement(); xmlWriter.WriteStartElement("color"); xmlWriter.WriteString("None"); xmlWriter.WriteEndElement(); xmlWriter.WriteStartElement("height"); xmlWriter.WriteString("" + s1.A); xmlWriter.WriteEndElement(); xmlWriter.WriteEndElement(); break; } case "TriangleFilm": { TriangleFilm t1 = (TriangleFilm)i; xmlWriter.WriteStartElement("figure"); xmlWriter.WriteAttributeString("type", "Triangle"); xmlWriter.WriteStartElement("material"); xmlWriter.WriteString("Film"); xmlWriter.WriteEndElement(); xmlWriter.WriteStartElement("color"); xmlWriter.WriteString("None"); xmlWriter.WriteEndElement(); xmlWriter.WriteStartElement("side_a"); xmlWriter.WriteString("" + t1.A); xmlWriter.WriteEndElement(); xmlWriter.WriteStartElement("side_b"); xmlWriter.WriteString("" + t1.B); xmlWriter.WriteEndElement(); xmlWriter.WriteStartElement("side_c"); xmlWriter.WriteString("" + t1.C); xmlWriter.WriteEndElement(); xmlWriter.WriteEndElement(); break; } case "CirclePaper": { CirclePaper c1 = (CirclePaper)i; xmlWriter.WriteStartElement("figure"); xmlWriter.WriteAttributeString("type", "Circle"); xmlWriter.WriteStartElement("material"); xmlWriter.WriteString("Paper"); xmlWriter.WriteEndElement(); xmlWriter.WriteStartElement("color"); xmlWriter.WriteString("" + c1.Color); xmlWriter.WriteEndElement(); xmlWriter.WriteStartElement("diameter"); xmlWriter.WriteString("" + c1.Diameter); xmlWriter.WriteEndElement(); xmlWriter.WriteEndElement(); break; } case "RectanglePaper": { RectanglePaper r1 = (RectanglePaper)i; xmlWriter.WriteStartElement("figure"); xmlWriter.WriteAttributeString("type", "Rectangle"); xmlWriter.WriteStartElement("material"); xmlWriter.WriteString("Paper"); xmlWriter.WriteEndElement(); xmlWriter.WriteStartElement("color"); xmlWriter.WriteString("" + r1.Color); xmlWriter.WriteEndElement(); xmlWriter.WriteStartElement("height"); xmlWriter.WriteString("" + r1.Height); xmlWriter.WriteEndElement(); xmlWriter.WriteStartElement("width"); xmlWriter.WriteString("" + r1.Width); xmlWriter.WriteEndElement(); xmlWriter.WriteEndElement(); break; } case "SquarePaper": { SquarePaper s1 = (SquarePaper)i; xmlWriter.WriteStartElement("figure"); xmlWriter.WriteAttributeString("type", "Square"); xmlWriter.WriteStartElement("material"); xmlWriter.WriteString("Paper"); xmlWriter.WriteEndElement(); xmlWriter.WriteStartElement("color"); xmlWriter.WriteString("" + s1.Color); xmlWriter.WriteEndElement(); xmlWriter.WriteStartElement("height"); xmlWriter.WriteString("" + s1.A); xmlWriter.WriteEndElement(); xmlWriter.WriteEndElement(); break; } case "TrianglePaper": { TrianglePaper t1 = (TrianglePaper)i; xmlWriter.WriteStartElement("figure"); xmlWriter.WriteAttributeString("type", "Triangle"); xmlWriter.WriteStartElement("material"); xmlWriter.WriteString("Paper"); xmlWriter.WriteEndElement(); xmlWriter.WriteStartElement("color"); xmlWriter.WriteString("" + t1.Color); xmlWriter.WriteEndElement(); xmlWriter.WriteStartElement("side_a"); xmlWriter.WriteString("" + t1.A); xmlWriter.WriteEndElement(); xmlWriter.WriteStartElement("side_b"); xmlWriter.WriteString("" + t1.B); xmlWriter.WriteEndElement(); xmlWriter.WriteStartElement("side_c"); xmlWriter.WriteString("" + t1.C); xmlWriter.WriteEndElement(); xmlWriter.WriteEndElement(); break; } } } xmlWriter.WriteEndDocument(); xmlWriter.Close(); }