protected void btnActualizar_Click(object sender, EventArgs e)
 {
     try
     {
         string campos = verificarCampos();
         if (campos.Equals(string.Empty))
         {
             adminNegocio = new AdministracionNegocio();
             sm_Persona persona = construirPersona(true);
             if (!chkMedicoTratante.Checked)//Actualiza un usuario del sistema
             {
                 /*Actualiza la persona*/
                 adminNegocio.ActualizarPersona(persona);
                 /*Consulta el usuario para ver si existe y si no lo crea*/
                 int        tipoID  = (string.IsNullOrEmpty(cboTipoIdentificacion.SelectedValue) ? 0 : Convert.ToInt32(cboTipoIdentificacion.SelectedValue));
                 Usuario    usuario = adminNegocio.ListarUsuarios(tipoID, txtNumeroIdentificacion.Text, 1).FirstOrDefault();
                 sm_Usuario usuarioAct;
                 if (usuario == null)
                 {
                     usuarioAct = construirUsuario(false);
                     adminNegocio.GuardarUsuario(usuarioAct);
                     tipoID = (int)usuarioAct.idTipoIdentificacion;
                     string  numID                   = usuarioAct.numeroIdentificacion;
                     Usuario nuevoUsuarioCrea        = adminNegocio.ListarUsuarios(tipoID, numID, 1).FirstOrDefault();
                     IList <sm_UsuarioRol> rolesCrea = construirUsuarioRol(nuevoUsuarioCrea.idUsuario);
                     foreach (sm_UsuarioRol ur in rolesCrea)
                     {
                         adminNegocio.GuardarRol(ur);
                     }
                     var coleccionRolesCrea = cboRol.CheckedItems;
                     foreach (var item in coleccionRolesCrea)//SE REVISA QUE DENTRO DE LOS ROLES SELECCIONADOS ESTE EL ROL MEDICO PARA AGREGARLO A MEDICOS
                     {
                         if (item.Text.ToUpper().Equals("MEDICO"))
                         {
                             sm_PersonalMedico medico = construirPersonalMedico();
                             adminNegocio.ActualizarMedico(medico);
                             break;
                         }
                     }
                 }
                 else
                 {
                     usuarioAct = construirUsuario(true);
                     adminNegocio.ActualizarUsuario(persona, usuarioAct);
                     tipoID = (int)usuario.idTipoIdentificacion;
                     Usuario nuevoUsuario = adminNegocio.ListarUsuarios(tipoID, usuario.numeroIdentificacion, 1).FirstOrDefault();
                     /*Eliminar los roles anteriores del usuario*/
                     foreach (sm_Rol rol in nuevoUsuario.Roles)
                     {
                         adminNegocio.EliminarRol(nuevoUsuario.idUsuario, rol.idRol);
                     }
                     /*Insertar los roles del usuario*/
                     IList <sm_UsuarioRol> roles = construirUsuarioRol(nuevoUsuario.idUsuario);
                     foreach (sm_UsuarioRol ur in roles)
                     {
                         adminNegocio.GuardarRol(ur);
                     }
                     var coleccionRoles = cboRol.CheckedItems;
                     foreach (var item in coleccionRoles)//SE REVISA QUE DENTRO DE LOS ROLES SELECCIONADOS ESTE EL ROL MEDICO PARA ACTUALIZARLO
                     {
                         if (item.Text.ToUpper().Equals("MEDICO"))
                         {
                             sm_PersonalMedico medico = construirPersonalMedico();
                             adminNegocio.ActualizarMedico(medico);
                             break;
                         }
                     }
                 }
             }
             else//Actualiza el personal medico
             {
                 //verificar si los campos de usuario vienen llenos y l campo de medicotrtante no esta checkeado para crearlo en vez de actualizarlo
                 sm_PersonalMedico medico = construirPersonalMedico();
                 adminNegocio.ActualizarPersona(persona);
                 adminNegocio.ActualizarMedico(medico);
             }
             limpiarCampos();
             RadGridUsuarios.Rebind();
         }
         else
         {
             MostrarMensaje(campos, false);
         }
     }
     catch (Exception ex)
     {
         MostrarMensaje("Error: " + ex.Message, true);
     }
 }
        protected void btnAgregarUsuario_Click(object sender, EventArgs e)
        {
            try
            {
                string campos = verificarCampos();

                if (campos.Equals(string.Empty))
                {
                    adminNegocio = new AdministracionNegocio();
                    IList <Usuario> existeUsuario = adminNegocio.ListarUsuarios(Convert.ToInt32(cboTipoIdentificacion.SelectedValue),
                                                                                txtNumeroIdentificacion.Text.Trim(), 1);
                    if (existeUsuario.Count == 0)//No existe el usuario
                    {
                        sm_Persona persona = construirPersona(false);
                        sm_Usuario usuario = construirUsuario(false);
                        adminNegocio.GuardarPersona(persona);
                        if (chkMedicoTratante.Checked)//Si es medico tratante sin usuario del sistema no debe guardar opciones rol
                        {
                            sm_PersonalMedico medico = construirPersonalMedico();
                            adminNegocio.GuardarMedico(medico);
                        }
                        else//Si es un usuario del sistema
                        {
                            adminNegocio.GuardarUsuario(usuario);
                            int     tipoID              = (int)usuario.idTipoIdentificacion;
                            string  numID               = usuario.numeroIdentificacion;
                            Usuario nuevoUsuario        = adminNegocio.ListarUsuarios(tipoID, numID, 1).FirstOrDefault();
                            IList <sm_UsuarioRol> roles = construirUsuarioRol(nuevoUsuario.idUsuario);
                            foreach (sm_UsuarioRol ur in roles)
                            {
                                adminNegocio.GuardarRol(ur);
                            }
                            var coleccionRoles = cboRol.CheckedItems;
                            foreach (var item in coleccionRoles)//sE REVISA QUE DENTRO DE LOS ROLES SELECCIONADOS ESTE EL ROL MEDICO PARA AGREGARLO A MEDICOS
                            {
                                if (item.Text.ToUpper().Equals("MEDICO"))
                                {
                                    sm_PersonalMedico medico = construirPersonalMedico();
                                    adminNegocio.GuardarMedico(medico);
                                    break;
                                }
                            }
                        }
                        limpiarCampos();
                        RadGridUsuarios.Rebind();
                    }
                    else
                    {
                        MostrarMensaje("La persona ya existe", false);
                    }
                }
                else
                {
                    MostrarMensaje(campos, false);
                }
            }
            catch (Exception ex)
            {
                MostrarMensaje("Error: " + ex.Message, true);
            }
        }