using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Exferia_Aplicacion.Visualizacion;
using Exferia_Aplicacion.General;
using Exferia_Aplicacion.Terminal;
using Exferia_EntityFramework;

namespace Exferia_General._3_Vistas.ControlesPersonalizados_DentroPaneles
{
    public partial class CTU_P_Terminales_Opciones_CheckBox : UserControl
    {
        #region Variables privadas
        private Terminal_Opcion_Modelo g_mdl_Terminal_Opcion_Modelo = null;
        private GEN_Terminales_Opciones g_mdl_GEN_Terminales_Opciones = null;
        #endregion

        #region Constructor
        public CTU_P_Terminales_Opciones_CheckBox( Terminal_Opcion_Modelo _mdl_Terminal_Opcion_Modelo, GEN_Terminales_Opciones _mdl_GEN_Terminales_Opciones)
        {
            InitializeComponent();
            Repintar.Empezar(this);

            //Variables Recibidas
            g_mdl_Terminal_Opcion_Modelo = _mdl_Terminal_Opcion_Modelo;
            g_mdl_GEN_Terminales_Opciones = _mdl_GEN_Terminales_Opciones;

            //Cargar los valors
            Cargar();
        }
        #endregion

        #region Cargar
        private void Cargar()
        {
            try
            {
                //Opcion
                ex_lbl_Opcion.Text = "[" + g_mdl_Terminal_Opcion_Modelo.opcionGrupo.Descripcion + "] " + g_mdl_Terminal_Opcion_Modelo.opcion.Descripcion;

                if (g_mdl_GEN_Terminales_Opciones != null)
                {
                    ex_chk_Opcion.Checked = true;
                }
                else
                {
                    if (g_mdl_Terminal_Opcion_Modelo.opcionTipo_CheckBox_ChekeadoDesChekeado != null && 
                        g_mdl_Terminal_Opcion_Modelo.opcionTipo_CheckBox_ChekeadoDesChekeado.Value)
                    {
                        ex_chk_Opcion.Checked = true;
                    }
                }

            }
            catch (Exception ex)
            {
                Control_Errores.Errores_Log("", ex, nameof(CTU_P_Terminales_Opciones_CheckBox) + "/" + nameof(Cargar));
            }
        }
        #endregion

        #region Obtener para Grabar
        public GEN_Terminales_Opciones Obtener_A_Grabar(long _lng_idTerminal)
        {
            GEN_Terminales_Opciones mdl_GEN_Terminales_Opciones = null;

            try
            {
                if (ex_chk_Opcion.Checked)
                {
                    mdl_GEN_Terminales_Opciones = new GEN_Terminales_Opciones();

                    //id
                    mdl_GEN_Terminales_Opciones.id = g_mdl_GEN_Terminales_Opciones!=null ? g_mdl_GEN_Terminales_Opciones.id : -1;

                    //idTerminal
                    mdl_GEN_Terminales_Opciones.idTerminal = _lng_idTerminal;

                    //opcion
                    mdl_GEN_Terminales_Opciones.opcion = g_mdl_Terminal_Opcion_Modelo.opcion.Codigo;

                    //valores
                    mdl_GEN_Terminales_Opciones.valores = "1";
                }
            }
            catch (Exception ex)
            {
                throw new Control_Errores("", ex, nameof(CTU_P_Terminales_Opciones_CheckBox) + "/" + nameof(Obtener_A_Grabar), true);
            }

            return mdl_GEN_Terminales_Opciones;
        }
        #endregion

    }
}
