public List <NivelUsuarioViewModel> ConsultarNivelUsuario(NIVEL_USUARIO filtros)
        {
            using (ASIS_PRODEntities entities = new ASIS_PRODEntities())
            {
                var query = from o in entities.NIVEL_USUARIO select o;
                clsDEmpleado     = new clsDEmpleado();
                clsDClasificador = new clsDClasificador();
                List <NivelUsuarioViewModel> Lista   = new List <NivelUsuarioViewModel>();
                List <Clasificador>          Niveles = clsDClasificador.ConsultaClasificador(new Models.Seguridad.Clasificador {
                    Grupo          = clsAtributos.CodigoGrupoNivelUsuario,
                    EstadoRegistro = clsAtributos.EstadoRegistroActivo
                }).ToList();
                var Empleados = clsDEmpleado.ConsultaEmpleado("0");
                Lista = (from q in query.ToList()
                         join n in Niveles on q.Nivel equals int.Parse(n.Codigo)
                         join e in Empleados on q.IdUsuario equals e.CEDULA
                         select new NivelUsuarioViewModel
                {
                    IdNivelUsuario = q.IdNivelUsuario,
                    IdUsuario = q.IdUsuario,
                    EstadoRegistro = q.EstadoRegistro,
                    Nivel = q.Nivel,
                    DescripcionNivel = n.Descripcion,
                    Usuario = e.NOMBRES,
                    UsuarioAprueba = q.CedulaAprueba
                }).Distinct().ToList();

                return(Lista);
            }
        }
        public string GuardarModificarNivelUsuario(NIVEL_USUARIO doNivelUsuario)
        {
            using (ASIS_PRODEntities entities = new ASIS_PRODEntities())
            {
                var poNivelUsuario = entities.NIVEL_USUARIO.FirstOrDefault(x =>
                                                                           x.IdNivelUsuario == doNivelUsuario.IdNivelUsuario ||
                                                                           x.IdUsuario == doNivelUsuario.IdUsuario);

                if (poNivelUsuario != null)
                {
                    poNivelUsuario.CedulaAprueba           = doNivelUsuario.CedulaAprueba;
                    poNivelUsuario.Nivel                   = doNivelUsuario.Nivel;
                    poNivelUsuario.EstadoRegistro          = doNivelUsuario.EstadoRegistro;
                    poNivelUsuario.FechaModificacionLog    = doNivelUsuario.FechaModificacionLog;
                    poNivelUsuario.TerminalModificacionLog = doNivelUsuario.TerminalModificacionLog;
                    poNivelUsuario.UsuarioModificacionLog  = doNivelUsuario.UsuarioModificacionLog;
                }
                else
                {
                    entities.NIVEL_USUARIO.Add(doNivelUsuario);
                }
                entities.SaveChanges();
                return(clsAtributos.MsjRegistroGuardado);
            }
        }
        public ActionResult NivelUsuario(NivelUsuarioViewModel model)
        {
            try
            {
                ViewBag.dataTableJS = "1";
                ViewBag.JavaScrip   = RouteData.Values["controller"] + "/" + RouteData.Values["action"];

                clsDNivelUsuario      = new clsDNivelUsuario();
                ViewBag.dataTableJS   = "1";
                ViewBag.JavaScrip     = RouteData.Values["controller"] + "/" + RouteData.Values["action"];
                ViewBag.ListaUsuarios = clsDNivelUsuario.ConsultarNivelUsuario(null);
                if (ModelState.IsValid)
                {
                    string[] Usuario = User.Identity.Name.Split('_');
                    model.EstadoRegistro = model.EstadoRegistro == "true" ? "A" : "I";
                    NIVEL_USUARIO NivelUsuario = new NIVEL_USUARIO
                    {
                        IdNivelUsuario     = model.IdNivelUsuario ?? 0,
                        IdUsuario          = model.IdUsuario,
                        Nivel              = model.Nivel,
                        CedulaAprueba      = model.UsuarioAprueba,
                        EstadoRegistro     = model.EstadoRegistro,
                        FechaIngresoLog    = DateTime.Now,
                        UsuarioIngresoLog  = Usuario[0],
                        TerminalIngresoLog = Request.UserHostAddress
                    };


                    string respuesta = clsDNivelUsuario.GuardarModificarNivelUsuario(NivelUsuario);
                    SetSuccessMessage(respuesta);
                    ConsultarComboNivelUsuario();
                    return(View());
                }
                else
                {
                    ConsultarComboNivelUsuario();
                    return(View(model));
                }
            }
            catch (DbEntityValidationException e)
            {
                clsDError = new clsDError();
                lsUsuario = User.Identity.Name.Split('_');
                string Mensaje = clsDError.ControlError(lsUsuario[0], Request.UserHostAddress, this.ControllerContext.RouteData.Values["controller"].ToString(),
                                                        "Metodo: " + this.ControllerContext.RouteData.Values["action"].ToString(), null, e);
                SetErrorMessage(Mensaje);
                return(RedirectToAction("Home", "Home"));
            }
            catch (Exception ex)
            {
                clsDError = new clsDError();
                lsUsuario = User.Identity.Name.Split('_');
                string Mensaje = clsDError.ControlError(lsUsuario[0], Request.UserHostAddress, this.ControllerContext.RouteData.Values["controller"].ToString(),
                                                        "Metodo: " + this.ControllerContext.RouteData.Values["action"].ToString(), ex, null);
                SetErrorMessage(Mensaje);
                return(RedirectToAction("Home", "Home"));
            }
        }