public static List<AccesoDisponible> GetPerfilesDisponibles(int idUsuario)
        {
            var repo = new AccesoRepository();

            var accesos = repo.GetAccesosPorUsuario(idUsuario);
            var accesosVM = new List<AccesoDisponible>();

            int orden = 1;

            foreach (var acceso in accesos)
            {
                var accesoVM = new AccesoDisponible();
                accesoVM.Id = acceso.Id;
                if (acceso.TipoComponente == TipoComponente.Administrador)
                {
                    accesoVM.Logo = "https://facilfactura.blob.core.windows.net/logos/logo.png";
                    accesoVM.Id = 0;
                    accesoVM.Nombre = "Administrador del sistema";
                    accesoVM.Orden = 0;
                    accesoVM.Tipo = "Administración";
                    accesoVM.Url = "/admin/access";
                    accesoVM.SubTitulo = "FacilFactura";
                }

                if (acceso.TipoComponente == TipoComponente.Franquicia)
                {
                    accesoVM.Logo = LogoService.GetLogoFranquicia(acceso.Componente);
                    accesoVM.Id = acceso.Componente;
                    accesoVM.Nombre = FranquiciaService.GetFranquicia(acceso.Componente).Nombre;
                    accesoVM.Orden = orden;
                    accesoVM.Tipo = "Franquicia";
                    accesoVM.Url = "/AdmFranquicia/Access";
                    accesoVM.SubTitulo = FranquiciaService.GetFranquicia(acceso.Componente).Url;
                }

                if (acceso.TipoComponente == TipoComponente.Empresa)
                {
                    accesoVM.Logo = LogoService.GetLogoEmpresa(acceso.Id);
                    accesoVM.Id = acceso.Componente;
                    accesoVM.Nombre = "NOMEMPRESA";
                    accesoVM.Orden = orden;
                    accesoVM.Tipo = "Empresa";
                    accesoVM.Url = "/Intranet/access";
                    accesoVM.SubTitulo = "FacilFactura";
                }

                accesosVM.Add(accesoVM);
                orden++;
            }

            return accesosVM;
        }
        /// <summary>
        /// Comprueba si puede acceder a un tipo de componente (Administrador, Franquicia, Empresa, Facturador)
        /// Por Id Usuario.
        /// </summary>
        /// <param name="idUsuario">Id del usuario</param>
        /// <param name="tipoComponente">Tipo componente (Administrador, Franquicia, Empresa, Facturador)</param>
        /// <param name="idComponente">Id del componente</param>
        /// <returns>Boleano, true en caso de que si pueda acceder.</returns>
        public static bool PuedeAcceder(int idUsuario, TipoComponente tipoComponente, int idComponente)
        {
            var repo = new AccesoRepository();
            var acceso =
                repo.GetAccesosPorUsuario(idUsuario)
                    .FirstOrDefault(a => a.TipoComponente == tipoComponente && a.Componente == idComponente);

            if (acceso != null && acceso.Estado == EstadoAcceso.Habilitado)
                return true;
            return false;
        }