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

namespace classes
{
    class linea
    {
        /// <summary>
        /// Initializes a new instance of the <see cref="linea"/> class.
        /// </summary>
        /// <param name="numero">El numero.</param>
        /// <param name="contenido">La intervencion original extraida del .doc .</param>
        public linea(int numero, string contenido)
        {
            this.numero = numero;
            this.contenido = contenido;
            this.elementos = new SortedList<int, elemento>();
            this.estado = "Creado";
        }
        private string contenido;

        public string Contenido
        {
            get { return contenido; }
            set { contenido = value; }
        }
        private int numero;

        public int Numero
        {
            get { return numero; }
            set { numero = value; }
        }
        private string interlocutor;

        public string Interlocutor
        {
            get { return interlocutor; }
            set { interlocutor = value; }
        }
        private SortedList<int, elemento> elementos;

        internal SortedList<int, elemento> Elementos
        {
            get { return elementos; }
            set { elementos = value; }
        }
        private string estado;

        public string Estado
        {
            get { return estado; }
            set { estado = value; }
        }
        public void actualizarEstado()
        {
            string estado="sin estado";
            foreach (elemento e in this.Elementos.Values) 
            {
                if (e.Estado.Equals("Creado")) { estado = "Creado"; break; }
                else if(e.Estado.Equals("Etiquetado")) estado="Etiquetado";
                else if(e.Estado.Equals("Validado")&&!estado.Equals("Etiquetado")) estado="Validado";
            }

            if (estado.Equals("Creado")) this.estado = "Creado";
            else if (estado.Equals("Etiquetado")) this.estado = "Etiquetado";
            else if (estado.Equals("Validado")) this.estado = "Validado";
            else this.estado = "Sin elementos";
         }
    }
}
