/// <summary>
    /// Llena el grid con la informacion de los Correos
    /// de mantenimiento
    /// </summary>
    /// <param name="searchFilter">filtro de Busqueda</param>
    /// <param name="showErrorMessage">muestra mensaje de error en caso de no haber datos</param>
    private void Fill_gvEmail(string searchFilter, bool showErrorMessage)
    {
        EmailMaintenance result = new EmailMaintenance();

        result.GetEmailMaintenance(searchFilter);

        if (result.Messages.Status == 0)
        {
            wucMessageControl.Title   = "Error";
            wucMessageControl.Image   = "../include/imagenes/error_32.png";
            wucMessageControl.Message = result.Messages.Message;
            wucMessageControl.ShowPopup();
        }
        else
        {
            if (result.EmailMaintenanceTable.Count <= 0 && showErrorMessage == true)
            {
                wucMessageControl.Title   = "Error";
                wucMessageControl.Image   = "../include/imagenes/advertencia_32.png";
                wucMessageControl.Message = "No se encontraron datos";
                wucMessageControl.ShowPopup();
            }
        }

        gvEmail.DataSource = result.EmailMaintenanceTable;
        gvEmail.DataBind();

        setStatusImage();
    }
    /// <summary>
    /// Click al boton guardar en el panel PopUp
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void btnSave_Click(object sender, EventArgs e)
    {
        lblMessageSegm.Text = string.Empty;
        EmailMaintenance ExistEmail = new EmailMaintenance();

        if (Page.IsValid)
        {
            if (ddlCountries.SelectedValue != "-1")
            {
                if (tbEmail.Text.ToString().Length == 0)
                {
                    lblMessageSegm.Text = "Todos los datos son requeridos";
                    if (tbEmail.Text.ToString().Length == 0)
                    {
                        lblMessageSegm.Text = lblMessageSegm.Text + ", incluya email";
                    }
                    btnNewEmail_ModalPopupExtender.Enabled = true;
                    btnNewEmail_ModalPopupExtender.Show();
                }
                else if (ExistEmail.ExistEmailCountry(tbEmail.Text.Trim(), decimal.Parse(ddlCountries.SelectedValue)) > 0 && hdfEmail.Value != tbEmail.Text)
                {
                    lblMessageSegm.Text = "País y correo ya existen";
                    btnNewEmail_ModalPopupExtender.Enabled = true;
                    btnNewEmail_ModalPopupExtender.Show();
                }
                else
                {
                    ConfigurationTool.Command action = (ConfigurationTool.Command)Session["Action"];
                    if (action == ConfigurationTool.Command.Insert)
                    {
                        Insert();
                    }
                    else
                    {
                        Update();
                    }
                    ddlCountries.DataSourceID = odsCountries.ID;
                    odsCountries.DataBind();
                    ddlCountries.DataBind();
                }
            }
            else
            {
                lblMessageSegm.Text = "Seleccione un país";
                btnNewEmail_ModalPopupExtender.Enabled = true;
                btnNewEmail_ModalPopupExtender.Show();
            }
        }
    }
    /// <summary>
    /// Actualiza la información de un
    /// Correo de mantenimiento
    /// Autor: Xolo
    /// Fecha: 06.Agost.2015
    /// </summary>
    private void Update()
    {
        EmailMaintenance updEmail = new EmailMaintenance();

        updEmail.Email      = tbEmail.Text;
        updEmail.Status     = ddlStatus.SelectedValue;
        updEmail.IdCountryR = decimal.Parse(ddlCountries.SelectedValue);



        try
        {
            Decimal codEmailMaint = Convert.ToDecimal(Session["COD_EMAIL_MAINTENANCE"]);

            updEmail.UpdateEmailMaintenance(updEmail, codEmailMaint);

            if (updEmail.Messages.Status == 1)
            {
                wucMessageControl.Title = "Mensaje";
                wucMessageControl.Image = "../include/imagenes/info_32.png";
            }
            else
            {
                wucMessageControl.Title = "Error";
                wucMessageControl.Image = "../include/imagenes/error_32.png";
            }

            wucMessageControl.Message = updEmail.Messages.Message;
            wucMessageControl.ShowPopup();
            //Registrar las pistas de Auditoria
            UpdateEmailMaintAudit();

            btnNewEmail_ModalPopupExtender.Enabled = false;

            Load_SolutionResponsibles();
        }
        catch (Exception ex)
        {
            wucMessageControl.Title   = "Error";
            wucMessageControl.Image   = "../include/imagenes/error_32.png";
            wucMessageControl.Message = ex.Message.ToString();
            wucMessageControl.ShowPopup();

            SafetyPad.SetLogRecord("SolutionResponsibles.aspx.cs", ex.ToString());
        }
    }
    /// <summary>
    /// Carga la información de un Correo de Mantenimiento para su edición
    /// </summary>
    /// <param name="rowIndex">fila seleccionada</param>
    private void EditEmailMaintenance(int rowIndex)
    {
        //Guardar el Código del Responsable a editar
        Session["COD_EMAIL_MAINTENANCE"] = gvEmail.DataKeys[rowIndex]["COD_EMAIL_MAINTENANCE"].ToString();

        //Cargar la información del responsable
        EmailMaintenance result = new EmailMaintenance();

        result.EditEmailMaintenance(Convert.ToDecimal(Session["COD_EMAIL_MAINTENANCE"]));

        if (result.Messages.Status == 0) //Si hay un error
        {
            wucMessageControl.Title   = "Error";
            wucMessageControl.Image   = "../include/imagenes/error_32.png";
            wucMessageControl.Message = result.Messages.Message;
            wucMessageControl.ShowPopup();
        }
        else //Si el dato es correcto
        {
            tbEmail.Text            = result.Email;
            hdfEmail.Value          = result.Email;
            ddlStatus.SelectedValue = gvEmail.DataKeys[rowIndex]["RECORD_STATUS"].ToString();

            try
            {
                ddlCountries.SelectedValue = result.IdCountryR.ToString();
            }
            catch
            {
                ddlCountries.DataSourceID = odsAllCountries.ID;
                odsAllCountries.DataBind();
                ddlCountries.DataBind();
                try
                {
                    ddlCountries.SelectedValue = "4";
                }
                catch
                {
                    ddlCountries.SelectedValue = "1";
                }
            }

            btnNewEmail_ModalPopupExtender.Enabled = true;
            btnNewEmail_ModalPopupExtender.Show();
        }
    }
    /// <summary>
    /// Inserta un nuevo Correo de mantenimiento
    /// Autor: Xolo
    /// Fecha: 06.Agost.2015
    /// </summary>
    private void Insert()
    {
        EmailMaintenance newEmail = new EmailMaintenance();

        newEmail.Email      = tbEmail.Text;
        newEmail.Status     = ddlStatus.SelectedValue;
        newEmail.IdCountryR = decimal.Parse(ddlCountries.SelectedValue);

        try
        {
            newEmail.InsertEmailMaintenance(newEmail);

            if (newEmail.Messages.Status == 1)
            {
                wucMessageControl.Title = "Mensaje";
                wucMessageControl.Image = "../include/imagenes/info_32.png";
            }
            else
            {
                wucMessageControl.Title = "Error";
                wucMessageControl.Image = "../include/imagenes/error_32.png";
            }

            wucMessageControl.Message = newEmail.Messages.Message;
            wucMessageControl.ShowPopup();
            //Registrar las pistas de Auditoria
            InsertEmailMaintAudit();

            btnNewEmail_ModalPopupExtender.Enabled = false;

            Load_SolutionResponsibles();
        }
        catch (Exception ex)
        {
            wucMessageControl.Title   = "Error";
            wucMessageControl.Image   = "../include/imagenes/error_32.png";
            wucMessageControl.Message = ex.Message.ToString();
            wucMessageControl.ShowPopup();

            SafetyPad.SetLogRecord("SolutionResponsibles.aspx.cs", ex.ToString());
        }
    }