public static RNUsuario Acceso(string usuario, string pass, out bool snAcceso)
        {
            RNUsuario   logeado = new RNUsuario();
            ctrlUsuario Usuario = null;
            RNPerfil    perfil  = new RNPerfil();

            using (var ctx = new LBInventoryEntities())
            {
                //var pass = Encriptacion.Encrypt(pass, true);
                Usuario = ctx.ctrlUsuario.Where(x => x.Usuario == usuario && x.Password == pass).FirstOrDefault();
                if (Usuario != null)
                {
                    //Validar si el usuario tiene un perfil asignado, de lo contrario, no se le permite el acceso
                    var perfiles = perfil.ObtenerPerfilesUsuario(Usuario.Id);
                    if (perfiles.Count > 0)
                    {
                        snAcceso = true;
                    }
                    else
                    {
                        snAcceso = false;
                    }
                    logeado.Obtener(Usuario.Id);
                }
                else
                {
                    snAcceso = false;
                }
            }
            return(logeado);
        }
        public RNUsuario Consultar(int id)
        {
            RNUsuario usuario = new RNUsuario();

            usuario = llenarRNUsuario(Obtener(id));
            return(usuario);
        }
        //Solo los datos del usuario, el perfil se guardara en la clase correspondiente
        private ctrlUsuario llenarCtrlUsuario(RNUsuario usuario)
        {
            ctrlUsuario ctrlUsuario = new ctrlUsuario();

            try
            {
                ctrlUsuario.Id          = usuario.Id;
                ctrlUsuario.Usuario     = usuario.Usuario;
                ctrlUsuario.Password    = usuario.Password;
                ctrlUsuario.Nombre      = usuario.Nombre;
                ctrlUsuario.SNActivo    = usuario.SNActivo;
                ctrlUsuario.CveVendedor = usuario.CveVendedor;
            }
            catch (Exception)
            {
                throw;
            }
            return(ctrlUsuario);
        }
        public object ObtenerPerfilesSinAsignar(int idUsuario)
        {
            RNUsuario       usuario           = new RNUsuario();
            List <RNPerfil> perfiles          = new List <RNPerfil>();
            List <RNPerfil> perfilesAsignados = new List <RNPerfil>();

            try
            {
                perfilesAsignados = ObtenerPerfilesUsuario(idUsuario);
                perfiles          = Listar();
                foreach (var per in perfilesAsignados)
                {
                    var itemToRemove = perfiles.Single(r => r.Id == per.Id);
                    perfiles.Remove(itemToRemove);
                }
            }
            catch (Exception)
            {
                perfiles = new List <RNPerfil>();
            }
            return(perfiles);
        }
        public RNUsuario llenarRNUsuario(ctrlUsuario ctrlUsuario)
        {
            RNUsuario usuario = new RNUsuario();

            usuario.catPerfil = new List <RNPerfil>();
            RNPerfil per = new RNPerfil();

            usuario.Id          = ctrlUsuario.Id;
            usuario.Usuario     = ctrlUsuario.Usuario;
            usuario.Nombre      = ctrlUsuario.Nombre;
            usuario.SNActivo    = ctrlUsuario.SNActivo;
            usuario.CveVendedor = ctrlUsuario.CveVendedor;
            using (var ctx = new LBInventoryEntities())
            {
                foreach (var item in ctx.relUsuarioPerfil.Include("CatPerfil").Where(x => x.UsuarioId == ctrlUsuario.Id))
                {
                    per        = new RNPerfil();
                    per.Id     = item.PerfilId;
                    per.Perfil = item.catPerfil.Perfil;
                    usuario.catPerfil.Add(per);
                }
            }
            return(usuario);
        }