// 
// Copyright 2016 Agencia Estatal de Administración Tibutaria
//
// Licencia con arreglo a la EUPL, Versión 1.1 o -en cuanto
// sean aprobadas por la Comisión Europea- versiones
// posteriores de la EUPL (la «Licencia»);
// Solo podrá usarse esta obra si se respeta la Licencia.
// Puede obtenerse una copia de la Licencia en:
//  
// https://joinup.ec.europa.eu/software/page/eupl
//  
// Salvo cuando lo exija la legislación aplicable o se acuerde
// por escrito, el programa distribuido con arreglo a la
// Licencia se distribuye «TAL CUAL», SIN GARANTÍAS NI CONDICIONES
// DE NINGÚN TIPO, ni expresasni implícitas.
//
// Véase la Licencia en el idioma concreto que rige los permisos y 
// limitaciones que establece la Licencia.
// 

using System;
using System.Collections.Generic;
using System.Text;
using ateneo;

namespace minigestor
{
    class Configuracion : ateneo.ConfiguracionBase
    {
        private const string nombreFichero = "ConfiguracionOperador.ini";
        private static Configuracion _yo = null;

        public static Configuracion instanciaUnica {
            get {
                if (_yo == null) {
                    _yo = new Configuracion();
                }
                return _yo;
            }
        }
        public string nombreServidor;
        public bool usandoUDP = false;
        public string ipServidor;
        public int puertoIpServidor;
        public string ipServidorSec;
        public int puertoIpServidorSec;
        public string mesa;
        public bool permitirNoiden = true;
        public List<ScriptCandidato> scriptsCandidato = new List<ScriptCandidato>();

        private Configuracion() : base() { }

        public bool cargar() {
            base.cargar(nombreFichero);
            nombreServidor = valor("nombreServidor", "");
            if (nombreServidor != "") usandoUDP = true;
            ipServidor = valor("IpServidor", "0.0.0.0");
            puertoIpServidor = valor("IpPort", 5000);
            ipServidorSec = valor("IpServidorSec", "");
            if (ipServidorSec == "") {
                ipServidorSec = ipServidor;
            }
            puertoIpServidorSec = valor("IpPortSec", 0);
            if (puertoIpServidorSec == 0) {
                puertoIpServidorSec = puertoIpServidor;
            }
            mesa = valor("numeroMesa", "0");
            //foreach (Dato d in data) {
            //    string clave = d.clave.ToLower();
            //    if (clave.StartsWith("script")) {
            //        string v = d.valor;
            //        string[] p = v.Split(';');
            //        ScriptCandidato sc = new ScriptCandidato(p[1], p[0]);
            //        scriptsCandidato.Add(sc);
            //    }
            //}
        
            return true;
        }
    }

    public class ScriptCandidato
    {
        public string path;
        public string menuTxt;
        public ScriptCandidato(string p, string m) {
            path = p;
            menuTxt = m;
        }
    }

}
