//Evento Uncheck de los items en la grilla.
        private void chkDiscontinue_Unchecked(object sender, RoutedEventArgs e)
        {
            //Obtener elemento seleccionado.
            System.Windows.Controls.CheckBox checkBox = (System.Windows.Controls.CheckBox)e.OriginalSource;
            //Obtener objeto asociado a elemento seleccinado
            DataGridRow    dataGridRow = VisualTreeHelpers.FindAncestor <DataGridRow>(checkBox);
            ReportePermiso doc         = (ReportePermiso)dataGridRow.DataContext;

            if ((bool)checkBox.IsChecked == false)
            {
                doc.Check = false;
            }
            e.Handled = true;
        }
        private void cs_pxCargarPermisos()
        {
            lista_permisos         = new List <ReportePermiso>();
            dgUsuarios.ItemsSource = null;
            dgUsuarios.Items.Clear();
            string cuenta = cboUsuarios.SelectedValue.ToString();

            if (cuenta != "")
            {
                //buscar todos los modulos de la base de datos
                List <clsEntityModulo> modulos = new clsEntityModulo().cs_pxObtenerTodo();
                if (modulos != null)
                {
                    foreach (clsEntityModulo item in modulos)
                    {
                        permiso = new ReportePermiso();
                        //buscar permiso por cuenta y modulo
                        entidad_permiso = new clsEntityPermisos().cs_pxObtenerPorCodigoCuenta(item.Cs_pr_Modulo_Id, cuenta);
                        if (entidad_permiso != null)
                        {
                            permiso.Id          = entidad_permiso.Cs_pr_Permisos_Id;
                            permiso.Modulo      = item.Cs_pr_Modulo;
                            permiso.ModuloPadre = item.Cs_pr_Modulo_Padre;
                            permiso.Permitido   = entidad_permiso.Cs_pr_Permitido;
                            if (permiso.Permitido == "1")
                            {
                                permiso.Check = true;
                            }
                            else
                            {
                                permiso.Check = false;
                            }
                        }
                        else
                        {
                            permiso.Id          = Guid.NewGuid().ToString();
                            permiso.Check       = false;
                            permiso.Modulo      = item.Cs_pr_Modulo;
                            permiso.ModuloPadre = item.Cs_pr_Modulo_Padre;
                            permiso.Usuario     = item.Cs_pr_Modulo_Id;
                            permiso.Permitido   = cuenta;
                        }

                        lista_permisos.Add(permiso);
                    }
                }
                dgUsuarios.ItemsSource = lista_permisos;
            }
        }
        void AsignarPermisos()
        {
            try
            {
                clsEntityPermisos permiso;
                if (lista_permisos.Count > 0)
                {
                    //leer permisos asignados y modificar
                    foreach (ReportePermiso item in lista_permisos)
                    {
                        if (item.Check == true)
                        {
                            permiso = new clsEntityPermisos().cs_pxObtenerUnoPorId(item.Id);
                            if (permiso != null)
                            {
                                permiso.Cs_pr_Permitido = "1";
                                permiso.cs_pxActualizar(false);
                            }
                            else
                            {
                                clsEntityPermisos nuevo = new clsEntityPermisos();
                                nuevo.Cs_pr_Permisos_Id = item.Id;
                                nuevo.Cs_pr_Modulo      = item.Usuario;
                                nuevo.Cs_pr_Cuenta      = item.Permitido;
                                nuevo.Cs_pr_Permitido   = "1";
                                nuevo.cs_pxInsertar(false);
                            }
                        }
                        else
                        {
                            permiso = new clsEntityPermisos().cs_pxObtenerUnoPorId(item.Id);
                            if (permiso != null)
                            {
                                permiso.Cs_pr_Permitido = "0";
                                permiso.cs_pxActualizar(false);
                            }
                            else
                            {
                                clsEntityPermisos nuevo = new clsEntityPermisos();
                                nuevo.Cs_pr_Permisos_Id = item.Id;
                                nuevo.Cs_pr_Modulo      = item.Usuario;
                                nuevo.Cs_pr_Cuenta      = item.Permitido;
                                nuevo.Cs_pr_Permitido   = "0";
                                nuevo.cs_pxInsertar(false);
                            }
                        }
                    }

                    MessageBox.Show("Asignación exitosa.", "Mensaje", MessageBoxButton.OK, MessageBoxImage.Asterisk);
                }
                else
                {
                    MessageBox.Show("Debe seleccionar un usuario", "Mensaje", MessageBoxButton.OK, MessageBoxImage.Warning);
                }
            }
            catch (Exception ex)
            {
                clsBaseLog.cs_pxRegistarAdd("permisos->" + ex.ToString());
                MessageBox.Show("Ha ocurrido un error al guardar los cambios. Para mayor informacion revise el archivo de errores.", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }