using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;

namespace Gestor_de_Contenidos
{
    public class NivelExplicacion : Nivel
    {


        public NivelExplicacion():base() {
            
        }

        public override bool estaImplementado()
        {
            if ((nombre == null) || (nombre.Equals("")) || (texto == null) || (texto.Equals("")) || tieneImagenFondo() && ((fondo == null) || (fondo.Equals(""))) || (!tieneImagenFondo() && colorFondo == 0))
                return false;
            else
                return true;
        }




        public override void escribirXML(bool esEdicion)
        {
            string ruta = obtenerRutaNivel();
            string ruta_edicion="";
            if (esEdicion)
                ruta_edicion = obtenerRutaEdicion();
            System.IO.Directory.CreateDirectory(ruta);
            XmlTextWriter myXmlTextWriter = new XmlTextWriter(ruta+ "index.xml", System.Text.Encoding.UTF8);
            myXmlTextWriter.WriteStartDocument(false);
            myXmlTextWriter.Formatting = Formatting.Indented;

            myXmlTextWriter.WriteStartElement("nivel");
            myXmlTextWriter.WriteAttributeString("tipo", "explicacion");
            myXmlTextWriter.WriteAttributeString("nombre", Nombre);
            myXmlTextWriter.WriteAttributeString("texto", Texto);

            if (!esEdicion)
            {
                if (tieneImagenFondo())
                {
                    myXmlTextWriter.WriteAttributeString("tipo_fondo", "imagen");
                    myXmlTextWriter.WriteAttributeString("fondo", ruta + nombreArchivo(Fondo));
                    moverImagen(Fondo, ruta + nombreArchivo(Fondo));
                }
                else
                {

                    myXmlTextWriter.WriteAttributeString("tipo_fondo", "color");
                    myXmlTextWriter.WriteAttributeString("fondo", colorFondo.ToString());
                }
            }
            else
            {
                if (tieneImagenFondo())
                {
                    myXmlTextWriter.WriteAttributeString("tipo_fondo", "imagen");
                    myXmlTextWriter.WriteAttributeString("fondo", ruta_edicion + nombreArchivo(Fondo));
                    moverImagen(Fondo, ruta + nombreArchivo(Fondo));
                }
                else
                {

                    myXmlTextWriter.WriteAttributeString("tipo_fondo", "color");
                    myXmlTextWriter.WriteAttributeString("fondo", colorFondo.ToString());
                }

            }
  

            myXmlTextWriter.WriteEndElement();
            myXmlTextWriter.Flush();
            myXmlTextWriter.Close();

            if(siguienteNivel!=null)
                siguienteNivel.escribirXML(esEdicion);
            
        }


    }
}
