/// <summary>
        /// Aplica las curvas de BD sobre el modelo principal de la simulación
        /// Acción desencadenada al hacer click en botton Aplicar en tabpage curvas
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void AplicarCurvas(object sender, EventArgs e)
        {
            bool exitoso;
            int  cantidadCargadas;

            SimuLAN_DAO.DataSetToModeloDisrupciones(_main._modeloDisrupcionesBase, _curvas_actualizadas, out exitoso, false, out cantidadCargadas);
            EnviarMensaje(((exitoso && cantidadCargadas > 0) ? ("Proceso " + (exitoso ? "exitoso" : "fallido") + ". " + (exitoso ? ("Se carg" + (cantidadCargadas == 1 ? "ó" : "aron") + " " + cantidadCargadas + " curva" + (cantidadCargadas == 1 ? "" : "s") + " de disrupci" + (cantidadCargadas == 1 ? "ón." : "ones.")) : "")) : "No se cargaron curvas."));
        }
        /// <summary>
        /// Aplica los factores de BD sobre el modelo principal de la simulación
        /// Acción desencadenada al hacer click en botton Aplicar en tabpage factores escenarios
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void AplicarFactores(object sender, EventArgs e)
        {
            List <string> actualizados = new List <string>();

            if (_factores_actualizados.Tables.Contains(TipoDisrupcion.MANTENIMIENTO.ToString()))
            {
                actualizados.Add(TipoDisrupcion.MANTENIMIENTO.ToString());
                if (_main._factoresEscenarios.ContainsKey(TipoDisrupcion.MANTENIMIENTO))
                {
                    _main._factoresEscenarios[TipoDisrupcion.MANTENIMIENTO] = SimuLAN_DAO.CargarFactoresDesviacion(_factores_actualizados.Tables[TipoDisrupcion.MANTENIMIENTO.ToString()], true);
                }
                else
                {
                    _main._factoresEscenarios.Add(TipoDisrupcion.MANTENIMIENTO, SimuLAN_DAO.CargarFactoresDesviacion(_factores_actualizados.Tables[TipoDisrupcion.MANTENIMIENTO.ToString()], true));
                }
            }
            if (_factores_actualizados.Tables.Contains(TipoDisrupcion.METEREOLOGIA.ToString()))
            {
                actualizados.Add(TipoDisrupcion.METEREOLOGIA.ToString());
                if (_main._factoresEscenarios.ContainsKey(TipoDisrupcion.METEREOLOGIA))
                {
                    _main._factoresEscenarios[TipoDisrupcion.METEREOLOGIA] = SimuLAN_DAO.CargarFactoresDesviacion(_factores_actualizados.Tables[TipoDisrupcion.METEREOLOGIA.ToString()], true);
                }
                else
                {
                    _main._factoresEscenarios.Add(TipoDisrupcion.METEREOLOGIA, SimuLAN_DAO.CargarFactoresDesviacion(_factores_actualizados.Tables[TipoDisrupcion.METEREOLOGIA.ToString()], true));
                }
            }
            if (actualizados.Count > 0)
            {
                EnviarMensaje("Se actualizaron los factores de desvación multiescenario de " + ((actualizados.Count == 2) ? (actualizados[0] + " y " + actualizados[1]) : actualizados[0]) + ".");
            }
            else
            {
                EnviarMensaje("No se han actualizado factores.");
            }
        }