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

namespace Gestor_de_Contenidos
{
    /*
     Representación de un paciente que interactuará con el sistema
     */
    public class Paciente
    {
        private string nombre;
        public string Nombre {
            get { return nombre; }
            set { nombre = value; }
        }
        private string apellidos;
        public string Apellidos {
            get { return apellidos; }
            set { apellidos = value; }
        }
        private int id;
        public int Id {
            get { return id; }
            set { id = value; }
        
        }
        private DateTime fecha_nacimiento;
        public DateTime Fecha_nacimiento {
            get { return fecha_nacimiento; }
            set { fecha_nacimiento = value; }
        }

        public Paciente(string nombre, string apellidos, DateTime fecha_nacimiento)
        {
            this.nombre = nombre;
            this.apellidos = apellidos;
            this.fecha_nacimiento = fecha_nacimiento;
        }

        /*
         Método que guarda los datos de este paciente en un archivo XML
         */
        public void guardarXML()
        {

            if (!System.IO.Directory.Exists(frm_principal.getInstance().Path_base + "Pacientes"))
                System.IO.Directory.CreateDirectory(frm_principal.getInstance().Path_base + "Pacientes");

            if (!System.IO.Directory.Exists(frm_principal.getInstance().Path_base + "Pacientes\\" + this.id))
            {
                System.IO.Directory.CreateDirectory(frm_principal.getInstance().Path_base + "Pacientes\\" + this.id);
                XmlTextWriter myXmlTextWriter = new XmlTextWriter(frm_principal.getInstance().Path_base + "Pacientes\\" + this.id + "\\index.xml", System.Text.Encoding.UTF8);
                myXmlTextWriter.WriteStartDocument(false);
                myXmlTextWriter.Formatting = Formatting.Indented;


                myXmlTextWriter.WriteStartElement("paciente");
                myXmlTextWriter.WriteAttributeString("id", this.id.ToString());
                myXmlTextWriter.WriteAttributeString("nombre", this.Nombre);
                myXmlTextWriter.WriteAttributeString("apellidos", this.apellidos);
                myXmlTextWriter.WriteAttributeString("fecha", fecha_nacimiento.ToShortDateString());
                myXmlTextWriter.WriteEndElement();

                myXmlTextWriter.Flush();
                myXmlTextWriter.Close();
            }
            else {
                System.IO.File.Delete(frm_principal.getInstance().Path_base + "Pacientes\\" + this.id + "\\index.xml");
                XmlTextWriter myXmlTextWriter = new XmlTextWriter(frm_principal.getInstance().Path_base + "Pacientes\\" + this.id + "\\index.xml", System.Text.Encoding.UTF8);
                myXmlTextWriter.WriteStartDocument(false);
                myXmlTextWriter.Formatting = Formatting.Indented;


                myXmlTextWriter.WriteStartElement("paciente");
                myXmlTextWriter.WriteAttributeString("id", this.id.ToString());
                myXmlTextWriter.WriteAttributeString("nombre", this.Nombre);
                myXmlTextWriter.WriteAttributeString("apellidos", this.apellidos);
                myXmlTextWriter.WriteAttributeString("fecha", fecha_nacimiento.ToShortDateString());
                myXmlTextWriter.WriteEndElement();

                myXmlTextWriter.Flush();
                myXmlTextWriter.Close();
            }
        }

        public override string ToString()
        {
            return nombre + " " + apellidos;
        }
    }
}
