public ActionResult Formulario(OpcionRequest filtro)
        {
            OpcionModel modelo = new OpcionModel();

            modelo.Opcion           = new OpcionResponse();
            modelo.ListaModulo      = new List <SelectListItem>();
            modelo.ListaOpcionPadre = new List <SelectListItem>();

            if (!string.IsNullOrEmpty(filtro.CodigoOpcion.ToString()))
            {
                var response = opcionService.Obtener(filtro.CodigoOpcion);

                modelo.Opcion.CodigoOpcion   = response.Result.CodigoOpcion;
                modelo.Opcion.OpcionPadre    = response.Result.OpcionPadre;
                modelo.Opcion.CodigoModulo   = response.Result.CodigoModulo;
                modelo.Opcion.Nombre         = response.Result.Nombre;
                modelo.Opcion.Descripcion    = response.Result.Descripcion;
                modelo.Opcion.Glyphicon      = response.Result.Glyphicon;
                modelo.Opcion.Controlador    = response.Result.Controlador;
                modelo.Opcion.Metodo         = response.Result.Metodo;
                modelo.Opcion.Area           = response.Result.Area;
                modelo.Opcion.EstadoRegistro = response.Result.EstadoRegistro;
            }

            modelo.ListaModulo.Add(new SelectListItem()
            {
                Value = string.Empty, Text = GenericoResource.EtiquetaSeleccionar, Selected = true
            });
            modelo.ListaModulo.AddRange(moduloService.Buscar(new ModuloRequest()
            {
                CodigoModulo = filtro.CodigoModulo, EstadoRegistro = Constantes.Datos.Activo
            }).Result.Select(x => new SelectListItem()
            {
                Text     = x.Nombre,
                Value    = x.CodigoModulo.ToString(),
                Selected = false
            }));

            modelo.ListaOpcionPadre.Add(new SelectListItem()
            {
                Value = string.Empty, Text = GenericoResource.EtiquetaSeleccionar, Selected = true
            });
            modelo.ListaOpcionPadre.AddRange(opcionService.Buscar(new OpcionRequest()
            {
                CodigoOpcion = filtro.OpcionPadre, EstadoRegistro = Constantes.Datos.Activo
            }).Result.Select(x => new SelectListItem()
            {
                Text     = x.Nombre,
                Value    = x.CodigoOpcion.ToString(),
                Selected = false
            }));

            return(View(modelo));
        }
        public ProcessResult <object> Registrar(OpcionRequest data)
        {
            ProcessResult <object> resultado = new ProcessResult <object>();

            try
            {
                if (data.CodigoOpcion > 0)
                {
                    OpcionEntity Entity = EntityRepository.GetById(data.CodigoOpcion);

                    if (Entity != null)
                    {
                        Entity.CodigoOpcion = data.CodigoOpcion;
                        Entity.CodigoModulo = data.CodigoModulo;
                        Entity.OpcionPadre  = data.OpcionPadre;
                        Entity.Nombre       = data.Nombre;
                        Entity.Descripcion  = data.Descripcion;
                        Entity.Glyphicon    = data.Glyphicon;
                        Entity.Controlador  = data.Controlador;
                        Entity.Metodo       = data.Metodo;
                        Entity.Area         = data.Area;

                        EntityRepository.Editar(Entity);
                        resultado.IsSuccess = true;
                        EntityRepository.GuardarCambios();
                    }
                }
                else
                {
                    OpcionEntity Entity = new OpcionEntity();
                    Entity.CodigoModulo = data.CodigoModulo;
                    Entity.OpcionPadre  = data.OpcionPadre;
                    Entity.Nombre       = data.Nombre;
                    Entity.Descripcion  = data.Descripcion;
                    Entity.Glyphicon    = data.Glyphicon;
                    Entity.Controlador  = data.Controlador;
                    Entity.Metodo       = data.Metodo;
                    Entity.Area         = data.Area;

                    EntityRepository.Insertar(Entity);

                    resultado.IsSuccess = true;
                    EntityRepository.GuardarCambios();
                }
            }
            catch (Exception ex)
            {
                resultado.Exception = new ApplicationLayerException <OpcionService>(ex.Message);
            }
            return(resultado);
        }
        public JsonResult Buscar(OpcionRequest filtro)
        {
            var listTmp = (List <PermisosSistemaModel.PermisoControlador>) this.Session[Constantes.Sesion.Permisos.Lista_PermisosControlador];
            var permiso = listTmp.Where(x => x.Controlador == RouteData.Values["controller"].ToString()).Select(s => s.CodigoAccion).ToList()[0];

            filtro.EstadoRegistro = filtro.EstadoRegistroDescripcion == DatosConstantes.ParametrosEstadoRegistro.Activo ? DatosConstantes.EstadoRegistro.Activo : (filtro.EstadoRegistroDescripcion == DatosConstantes.ParametrosEstadoRegistro.Inactivo ? DatosConstantes.EstadoRegistro.Inactivo : null);
            filtro.CodigoIdioma   = filtro.CodigoIdioma = obtenerCodigoIdioma();

            var response = opcionService.Buscar(filtro);

            foreach (var item in response.Result)
            {
                item.Permiso = permiso;
            }

            return(Json(response));
        }
        public ProcessResult <List <OpcionResponse> > Buscar(OpcionRequest filtro)
        {
            ProcessResult <List <OpcionResponse> > resultado = new ProcessResult <List <OpcionResponse> >();

            try
            {
                List <OpcionLogic> lista = LogicRepository.Buscar(
                    filtro.CodigoOpcion,
                    filtro.CodigoModulo,
                    filtro.OpcionPadre,
                    filtro.OpcionPadreNombre,
                    filtro.Nombre,
                    filtro.Descripcion,
                    filtro.Controlador,
                    filtro.Metodo,
                    filtro.Area,
                    filtro.EstadoRegistro,
                    filtro.EstadoRegistroDescripcion,
                    filtro.NumeroPagina,
                    filtro.RegistrosPagina);

                resultado.Result = new List <OpcionResponse>();

                foreach (OpcionLogic item in lista)
                {
                    OpcionResponse Response = OpcionAdapter.ObtenerPaginado(item);
                    resultado.Result.Add(Response);
                }
            }
            catch (Exception ex)
            {
                resultado.IsSuccess = false;
                resultado.Exception = new ApplicationLayerException <OpcionService>(ex);
            }

            return(resultado);
        }
        public ProcessResult <object> Eliminar(OpcionRequest filtro)
        {
            ProcessResult <object> resultado = new ProcessResult <object>();

            resultado.Result = string.Empty;

            try
            {
                OpcionEntity Entity = EntityRepository.GetById(filtro.CodigoOpcion);

                if (Entity != null)
                {
                    EntityRepository.Eliminar(Entity.CodigoOpcion);

                    resultado.IsSuccess = true;
                    EntityRepository.GuardarCambios();
                }
            }
            catch (Exception ex)
            {
                resultado.Exception = new ApplicationLayerException <OpcionService>(ex.Message);
            }
            return(resultado);
        }
        public JsonResult Eliminar(OpcionRequest filtro)
        {
            var response = opcionService.Eliminar(filtro);

            return(Json(response));
        }
        public JsonResult Registrar(OpcionRequest data)
        {
            var response = opcionService.Registrar(data);

            return(Json(response));
        }