using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Runtime.InteropServices;
using System.Text;

namespace GMLC01HerramientasCad.Logica
{
    /// <summary>
    /// Definición de un idioma en uso en el XSD
    /// </summary>
    public class Idioma
    {
        private String iCodigo;
        private String iDescripcion;

        /// <summary>
        /// Constructor de la clase
        /// </summary>
        /// <param name="codigo"></param>
        /// <param name="descripcion"></param>
        public Idioma(String codigo, String descripcion)
        {
            iCodigo = codigo;
            iDescripcion = descripcion;
        }

        /// <summary>
        /// Código ISO del idioma (es-es, eu, etc.)
        /// </summary>
        public String Codigo
        {
            get { return iCodigo; }
            set { iCodigo = value; }
        }

        /// <summary>
        /// Descripción del idioma
        /// </summary>
        public String Descripcion
        {
            get { return iDescripcion; }
            set { iDescripcion = value; }
        }
    }

    /// <summary>
    /// Lista de idiomas con accesibilidad por clave
    /// </summary>
    [ComVisible(false)]
    public class ListaIdiomas : KeyedCollection<String, Idioma>
    {
        /// <summary>
        /// Define el código de idioma como clave de búsqueda en la lista
        /// </summary>
        /// <param name="item"></param>
        /// <returns></returns>
        protected override string GetKeyForItem(Idioma item)
        {
            return item.Codigo;
        }
    }
}
