public static string Absoluta(string relativa, Aplicacion aplicacion) { IPushNewsUnitOfWork uow = HttpContext.Current.Request.GetOwinContext().Get <IPushNewsUnitOfWork>(); var servicios = new ServiciosFactoria(uow, aplicacion); IParametrosServicio srv = servicios.ParametrosServicio(); Parametro paramRaizDocumentos = srv.GetByName(nombreParametro: "RaizDocumentos"); string rutaRaiz = paramRaizDocumentos.Valor; string rutaAbsoluta = System.IO.Path.Combine(rutaRaiz, relativa); return(rutaAbsoluta); }
public static IEnumerable <ElementoMenu> GenerarMenu(long usuarioID, Aplicacion aplicacion) { IPushNewsUnitOfWork uow = HttpContext.Current.Request.GetOwinContext().Get <IPushNewsUnitOfWork>(); var servicios = new ServiciosFactoria(uow, aplicacion); IAplicacionesServicio appSrv = servicios.AplicacionesServicio(); Aplicacion app = appSrv.GetSingle(a => a.AplicacionID == aplicacion.AplicacionID); IUsuariosServicio srv = servicios.UsuariosServicio(); // Flags para ocultar categorías, teléfonos y localizaciones en el menú. // Los tres elementos se mostrarán siempre si el usuario es administrador, independientemente de // si tiene o no tiene categorías asignadas. // Si el usuario no es administrador, los tres elementos se mostrarán si no tiene ninguna // categoría asignada en la aplicación acutal. Si tiene al menos una categoría asignada en la // aplicación acutal, los tres elementos se ocultan. IUsuariosServicio usuariosServicio = servicios.UsuariosServicio(); Usuario usuario = usuariosServicio.GetSingle(u => u.UsuarioID == usuarioID); bool usuarioEsAdmin = usuario.Rol.Nombre == "Administrador"; bool ocultarCategorias = false; bool ocultarTelefonos = false; bool ocultarLocalizaciones = false; IEnumerable <Dominio.Enums.AplicacionCaracteristica> caracteristicas = app.Caracteristicas .Where(c => c.Activo) .Select(c => (Dominio.Enums.AplicacionCaracteristica)c.AplicacionCaracteristicaID); List <ElementoMenu> menuCompleto = Elementos(caracteristicas, ocultarCategorias, ocultarTelefonos, ocultarLocalizaciones); var menuFiltrado = new List <ElementoMenu>(); if (usuarioEsAdmin) { menuFiltrado = menuCompleto; } else { foreach (var eActual in menuCompleto) { if (eActual.Roles.Any(r => r.Length == 0 || usuario.Rol.Nombre == r)) { if (eActual.TieneHijos) { QuitarHijos(eActual, new[] { "Editor" }); } menuFiltrado.Add(eActual); } } } return(menuFiltrado); }