protected void Button1_Click(object sender, EventArgs e)
        {
            try
            {
                DateTime fechaNacimiento = Convert.ToDateTime(this.txtFechaIngreso.Text);
                DateTime fechaHoy        = DateTime.Now;
                int      edad            = fechaHoy.Year - fechaNacimiento.Year;
                if (fechaHoy < fechaNacimiento.AddYears(edad))
                {
                    edad--;
                }
                if (edad > 1)
                {
                    this.lblMensaje.Visible = true;
                    lblMensaje.Text         = "Fecha de Registro no permitido, debe ser un registro actual";
                }
                else
                {
                    if (!Page.IsValid)
                    {
                        return;
                    }
                    DataContext dcGuardar = new DcGeneralDataContext();
                    UTTT.Ejemplo.Linq.Data.Entity.Usuario       persona   = new Linq.Data.Entity.Usuario();
                    UTTT.Ejemplo.Linq.Data.Entity.Persona       personaa  = new Linq.Data.Entity.Persona();
                    UTTT.Ejemplo.Linq.Data.Entity.CatEstadoUser personaaa = new Linq.Data.Entity.CatEstadoUser();
                    if (this.idUsuario == 0)
                    {
                        persona.idCatEstadoUser = 1;
                        persona.strContraseña   = txtContraseña.Text.Trim();
                        DateTime fecha = Convert.ToDateTime(txtFechaIngreso.Text);
                        persona.dteFechaRegistro = fechaNacimiento;


                        var comprobar  = dcGlobal.GetTable <Usuario>().Where(a => a.strNombreUsuario == txtNomUsuario.Text).FirstOrDefault();
                        var comprobare = dcGlobal.GetTable <Usuario>().Where(a => a.idComPersona == int.Parse(ddlNombre.Text)).FirstOrDefault();
                        if (comprobar != null)
                        {
                            this.lblMensaje.Visible = true;
                            this.lblMensaje.Text    = "Nombre de Usuario Repetido";
                        }
                        else if (comprobare != null)
                        {
                            this.lblMensaje.Visible = true;
                            this.lblMensaje.Text    = "La Persona ya está asignada a otro Usuario ";
                        }
                        else
                        {
                            persona.idComPersona     = int.Parse(this.ddlNombre.Text);
                            persona.strNombreUsuario = this.txtNomUsuario.Text.Trim();



                            dcGuardar.GetTable <UTTT.Ejemplo.Linq.Data.Entity.Usuario>().InsertOnSubmit(persona);
                            dcGuardar.SubmitChanges();
                            this.showMessage("El registro se agrego correctamente.");
                            this.Response.Redirect("~/UsuarioPrincipal.aspx", false);
                        }
                    }
                    if (this.idUsuario > 0)
                    {
                        persona = dcGuardar.GetTable <UTTT.Ejemplo.Linq.Data.Entity.Usuario>().First(c => c.id == idUsuario);

                        persona.strNombreUsuario = this.txtNomUsuario.Text.Trim();



                        persona.strContraseña = this.txtContraseña.Text.Trim();
                        persona.strContraseña = this.txtContraseña.Text;

                        persona.idCatEstadoUser = int.Parse(this.ddlCatEstadoUser.Text.Trim());
                        persona.idComPersona    = int.Parse(this.ddlNombre.Text);

                        DateTime fecha = Convert.ToDateTime(txtFechaIngreso.Text);
                        persona.dteFechaRegistro = fechaNacimiento;


                        dcGuardar.SubmitChanges();
                        this.showMessage("El registro se edito correctamente.");
                        this.Response.Redirect("~/UsuarioPrincipal.aspx", false);
                    }
                }
            }

            catch (Exception _e)
            {
                this.showMessageException(_e.Message);
                var mensaje = "Error message: " + _e.Message;
                if (_e.InnerException != null)
                {
                    mensaje = mensaje + " Inner exception: " + _e.InnerException.Message;
                }

                mensaje = mensaje + " Stack trace: " + _e.StackTrace;
                this.Response.Redirect("~/ErrorPage.aspx", false);
            }
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Session["strNombreUsuario"] == null)
            {
                Response.Redirect("login.aspx");
            }

            try
            {
                this.Response.Buffer = true;
                this.session         = (SessionManager)this.Session["SessionManager"];
                this.idUsuario       = this.session.Parametros["idPersona"] != null?
                                       int.Parse(this.session.Parametros["idPersona"].ToString()) : 0;

                if (this.idUsuario == 0)
                {
                    this.baseEntity = new Linq.Data.Entity.Usuario();
                    this.tipoAccion = 1;
                }
                else
                {
                    this.baseEntity = dcGlobal.GetTable <Linq.Data.Entity.Usuario>().First(c => c.id == this.idUsuario);
                    this.tipoAccion = 2;
                }

                if (!this.IsPostBack)
                {
                    if (this.session.Parametros["baseEntity"] == null)
                    {
                        this.session.Parametros.Add("baseEntity", this.baseEntity);
                    }

                    List <Linq.Data.Entity.Persona> lista = dcGlobal.GetTable <Linq.Data.Entity.Persona>().ToList();

                    this.ddlNombre.DataTextField  = "strNombre";
                    this.ddlNombre.DataValueField = "id";


                    List <Linq.Data.Entity.CatEstadoUser> listaa = dcGlobal.GetTable <Linq.Data.Entity.CatEstadoUser>().ToList();

                    this.ddlCatEstadoUser.DataTextField  = "strValor";
                    this.ddlCatEstadoUser.DataValueField = "id";


                    if (this.idUsuario == 0)
                    {
                        Linq.Data.Entity.Persona catTemp = new Linq.Data.Entity.Persona();
                        catTemp.id        = -1;
                        catTemp.strNombre = "Seleccionar";
                        lista.Insert(0, catTemp);
                        this.ddlNombre.DataSource = lista;
                        this.ddlNombre.DataBind();

                        Linq.Data.Entity.CatEstadoUser catTempp = new Linq.Data.Entity.CatEstadoUser();
                        catTempp.id       = -1;
                        catTempp.strValor = "Seleccionar";
                        listaa.Insert(0, catTempp);
                        this.ddlCatEstadoUser.DataSource = listaa;
                        this.ddlCatEstadoUser.DataBind();
                        UnirDropDownL();

                        this.lblAccion.Text = "Agregar";
                        DateTime time = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day);
                        this.txtFechaIngreso.Text = DateTime.Today.ToString("yyyy-MM-dd");


                        txtFechaIngreso.Enabled  = false;
                        lblEstado.Visible        = false;
                        ddlCatEstadoUser.Visible = false;
                    }
                    else
                    {
                        this.lblAccion.Text             = "Editar";
                        this.txtNomUsuario.Text         = this.baseEntity.strNombreUsuario;
                        this.txtContraseña.Text         = (this.baseEntity.strContraseña);
                        this.txtVerificaContraseña.Text = (this.baseEntity.strContraseña);
                        DateTime fechaNacimiento = (DateTime)this.baseEntity.dteFechaRegistro;
                        if (fechaNacimiento != null)
                        {
                            txtFechaIngreso.Text = fechaNacimiento.Date.ToString("yyyy/MM/dd");
                        }

                        ddlNombre.Enabled       = false;
                        txtFechaIngreso.Enabled = false;


                        this.ddlNombre.DataSource = lista;
                        this.ddlNombre.DataBind();



                        this.ddlCatEstadoUser.DataSource = listaa;
                        this.ddlCatEstadoUser.DataBind();

                        this.setItem(ref this.ddlCatEstadoUser, baseEntity.CatEstadoUser.strValor);

                        this.setItem(ref this.ddlNombre, baseEntity.Persona.strNombre);
                    }
                    this.ddlNombre.SelectedIndexChanged += new EventHandler(ddlNombre_SelectedIndexChanged);
                    this.ddlNombre.AutoPostBack          = false;
                }
            }
            catch (Exception _e)
            {
                this.showMessage("Ha ocurrido un problema al cargar la página");
                this.Response.Redirect("~/UsuarioPrincipal.aspx", false);
                this.showMessageException(_e.Message);
            }
        }
        protected void Button1_Click(object sender, EventArgs e)
        {
            try
            {
                DateTime fechaNacimiento = Convert.ToDateTime(this.txtFechaIngreso.Text);
                DateTime fechaHoy        = DateTime.Now;
                int      edad            = fechaHoy.Year - fechaNacimiento.Year;
                if (fechaHoy < fechaNacimiento.AddYears(edad))
                {
                    edad--;
                }
                if (edad > 1)
                {
                    this.lblMensaje.Visible = true;
                    lblMensaje.Text         = "Fecha de Registro no permitido, debe ser un registro actual";
                }
                else
                {
                    if (!Page.IsValid)
                    {
                        return;
                    }
                    DataContext dcGuardar = new DcGeneralDataContext();
                    UTTT.Ejemplo.Linq.Data.Entity.Usuario       persona   = new Linq.Data.Entity.Usuario();
                    UTTT.Ejemplo.Linq.Data.Entity.Persona       personaa  = new Linq.Data.Entity.Persona();
                    UTTT.Ejemplo.Linq.Data.Entity.CatEstadoUser personaaa = new Linq.Data.Entity.CatEstadoUser();
                    if (this.idUsuario == 0)
                    {
                        persona.idCatEstadoUser = 1;
                        persona.strContraseña   = txtContraseña.Text.Trim();
                        DateTime fecha = Convert.ToDateTime(txtFechaIngreso.Text);
                        persona.dteFechaRegistro = fechaNacimiento;



                        //encriptamos la cadena inicial
                        ///  persona.constrasenia= Crypt.cifrar(txtContra.Text);

                        //DateTime tiempo = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day);
                        //this.txtfecha.Text = Convert.ToString(tiempo.ToShortDateString());
                        var comprobar  = dcGlobal.GetTable <Usuario>().Where(a => a.strNombreUsuario == txtNomUsuario.Text).FirstOrDefault();
                        var comprobare = dcGlobal.GetTable <Usuario>().Where(a => a.idComPersona == int.Parse(ddlNombre.Text)).FirstOrDefault();
                        if (comprobar != null)
                        {
                            this.lblMensaje.Visible = true;
                            this.lblMensaje.Text    = "Nombre de Usuario Repetido";
                        }
                        else if (comprobare != null)
                        {
                            this.lblMensaje.Visible = true;
                            this.lblMensaje.Text    = "La Persona ya está asignada a otro Usuario ";
                        }
                        else
                        {
                            persona.idComPersona     = int.Parse(this.ddlNombre.Text);
                            persona.strNombreUsuario = this.txtNomUsuario.Text.Trim();
                            //String mensaje = String.Empty;
                            //if (!this.validacion(persona, ref mensaje))
                            //{
                            //    this.lblMensaje.Text = mensaje;
                            //    this.lblMensaje.Visible = true;
                            //    return;
                            //}
                            //if (!this.validacionSQL(ref mensaje))
                            //{
                            //    this.lblMensaje.Text = mensaje;
                            //    this.lblMensaje.Visible = true;
                            //    return;
                            //}
                            //if (!this.validacionHTML(ref mensaje))
                            //{
                            //    this.lblMensaje.Text = mensaje;
                            //    this.lblMensaje.Visible = true;
                            //    return;
                            //}


                            dcGuardar.GetTable <UTTT.Ejemplo.Linq.Data.Entity.Usuario>().InsertOnSubmit(persona);
                            dcGuardar.SubmitChanges();
                            this.showMessage("El registro se agrego correctamente.");
                            this.Response.Redirect("~/UsuarioPrincipal.aspx", false);
                        }
                    }
                    if (this.idUsuario > 0)
                    {
                        persona = dcGuardar.GetTable <UTTT.Ejemplo.Linq.Data.Entity.Usuario>().First(c => c.id == idUsuario);

                        persona.strNombreUsuario = this.txtNomUsuario.Text.Trim();


                        //persona.constrasenia = Crypt.Desencriptar(txtContra.Text);
                        //persona.constrasenia = Crypt.Desencriptar(txtreContra.Text);
                        persona.strContraseña = this.txtContraseña.Text.Trim();
                        persona.strContraseña = this.txtContraseña.Text;

                        persona.idCatEstadoUser = int.Parse(this.ddlCatEstadoUser.Text.Trim());
                        persona.idComPersona    = int.Parse(this.ddlNombre.Text);

                        DateTime fecha = Convert.ToDateTime(txtFechaIngreso.Text);
                        persona.dteFechaRegistro = fechaNacimiento;
                        //String mensaje = String.Empty;
                        //if (!this.validacion(persona, ref mensaje))
                        //{
                        //    this.lblMensaje.Text = mensaje;
                        //    this.lblMensaje.Visible = true;
                        //    return;
                        //}
                        //if (!this.validacionSQL(ref mensaje))
                        //{
                        //    this.lblMensaje.Text = mensaje;
                        //    this.lblMensaje.Visible = true;
                        //    return;
                        //}
                        //if (!this.validacionHTML(ref mensaje))
                        //{
                        //    this.lblMensaje.Text = mensaje;
                        //    this.lblMensaje.Visible = true;
                        //    return;
                        //}

                        dcGuardar.SubmitChanges();
                        this.showMessage("El registro se edito correctamente.");
                        this.Response.Redirect("~/UsuarioPrincipal.aspx", false);
                    }
                }
            }

            catch (Exception _e)
            {
                this.showMessageException(_e.Message);
                var mensaje = "Error message: " + _e.Message;
                if (_e.InnerException != null)
                {
                    mensaje = mensaje + " Inner exception: " + _e.InnerException.Message;
                }
                // Mi Correo
                mensaje = mensaje + " Stack trace: " + _e.StackTrace;
                this.Response.Redirect("~/ErrorPage.aspx", false);
                // this.Correo("*****@*****.**", "Exception", mensaje);
            }
        }