public static object DesactivarActivar(

        String ID, bool Activar, int Padre, int Perfil
      )
    {
        try
        {
            DaoOperaciones operacionesDao = new DaoOperaciones();

            if (!Activar)
            {
                #region desactivar perfil de la operacion
                var resultado = operacionesDao.DeleteOperacionesPerfil(ID, Padre);

                if (resultado)
                {

                    return new
                    {
                        Ok = "OK",
                        mensaje = "Se han desasociado los perifiles para este menu, Correctamente"

                    };
                }
                else
                {
                    return new
                    {
                        Ok = "error",
                        mensaje = "No se ha podido actualizar el regitro"

                    };
                }
                #endregion
            }
            else
            {
                DaoPerfil  p = new DaoPerfil() ;
                int i =0;
                var perfil = p.GetPerfiles(1, 999999, ref i);

                var idPerfil = perfil.Where(x => x.PREFIJO == ID).First().ID_PERFIL;

                //validar que el perfil no exista en la base de datos ya
                var existe = operacionesDao.consultaExisteEnbaseDatos(idPerfil, Padre);
                if (existe)
                {
                    return new
                    {
                        Ok = "ER",
                        mensaje = "El perfil ya existe asociado a este menu."

                    };
                }
                else
                {
                    var resultadoinsertar = operacionesDao.InsertarOperacionesPerfil(ID, Padre);
                    if (resultadoinsertar)
                    {

                        return new
                        {
                            Ok = "OK",
                            mensaje = "Se han Asociados los perifiles para este menu, Correctamente"

                        };
                    }
                    else
                    {
                        return new
                        {
                            Ok = "error",
                            mensaje = "No se ha podido actualizar el regitro"

                        };
                    }

                }
            }

        }
        catch (Exception ex)
        {

            return new
            {
                Ok = "Error",
                mensaje = "ha Ocurrido un error inesperado" + ex.ToString()

            };
        }
    }
    private static GridData _getListListConPaginacion(int pageIndex, int pageSize, int pageCount, bool isSearch, string searchField, string searchString, string searchOper)
    {
        try
        {
            int totalRecords = 0;

            DaoPerfil perfilDao = new DaoPerfil();

            var resultado = perfilDao.GetPerfiles(pageIndex, pageSize, ref totalRecords);
            totalRecords = resultado.Count();
            List<GridRow> listProcesos = new List<GridRow>();

            #region ("TOTAL==0")
            if (totalRecords == 0)
            {
                return new GridData
                {
                    page = pageIndex,
                    total = (int)Math.Ceiling((double)totalRecords / (double)pageSize),
                    records = totalRecords,
                    rows = new List<GridRow>(),
                    userMessage = "Se han cargado los datos con éxito.",
                    logMessage = "Carga satisfactoria...",
                    status = Status.OK
                };
            }
            #endregion
            else
            {
                //pageIndex,
                //pageSize, ref totalRecords, estado, banda, UID, plan, cliente);
                int id = 0;
                foreach (var proceso in resultado)
                {
                    id++;
                    listProcesos.Add(

                    new GridRow()
                    {
                        id = proceso.ID_PERFIL.ToString(),
                        cell = new List<object>(){
                                proceso.ID_PERFIL,
                                proceso.NOMBRE_PERFIL,
                                proceso.DESCRIPCION,
                                proceso.PREFIJO

                        }
                    });
                }

            }

            /// Con la información de los procesos y de la consulta se ensambla el objeto GridData de respuesta.
            ///
            return new GridData
            {
                page = pageIndex,
                total = (int)Math.Ceiling((double)totalRecords / (double)pageSize),
                records = totalRecords,
                rows = listProcesos,
                userMessage = "Se han cargado los datos con éxito.",
                logMessage = "Carga satisfactoria...",
                status = Status.OK
            };

        }
        catch (Exception ex)
        {
            AppLog.Write(" Error consultando la informacion de Cities ", AppLog.LogMessageType.Error, ex, "IbMallsLog");

            return new GridData
            {
                page = pageIndex,
                total = default(int),
                records = default(int),
                rows = new List<GridRow>(),
                userMessage = "Se han cargado los datos con éxito.",
                logMessage = "Carga satisfactoria...",
                status = Status.OK_WITH_MESSAGES
            };
        }
    }