public async Task <IHttpActionResult> Empresas(SolicitudModel model) { if (!ComprobarClaves(model)) { return(Unauthorized()); } var ap = Aplicacion(model.Subdominio); if (ap.Caracteristicas.All(c => c.Nombre != "Empresas")) { return(Unauthorized()); } IParametrosServicio pSrv = Servicios.ParametrosServicio(); Parametro pSubdominioBannersAleatorios = pSrv.GetByName("EmpresaBannerAleatorio"); string subdominioBannersAleatorios = pSubdominioBannersAleatorios?.Valor; IEmpresasServicio srv = Servicios.EmpresasServicio(); List <EmpresaModel> empresas = (await srv.GetAsync(e => e.Activo)) .Select(EmpresaModel.FromEntity) .ToList(); // Si el subdominio coincide con el parámetro de banners aleatorios, desordenar la // lista de empresas para que los banner se muestren en un orden aleatorio. if (model.Subdominio == subdominioBannersAleatorios) { Random rnd = new Random(); empresas = empresas.OrderBy(i => rnd.Next()).ToList(); } log.Debug("Sirviendo empresas en el siguiente orden: " + string.Join(", ", empresas.Select(e => e.EmpresaID))); return(Ok(empresas.AsQueryable())); }
protected string ObtenerPlantillaUrlMapas() { IParametrosServicio pSrv = Servicios.ParametrosServicio(); Parametro pUrlMapas = pSrv.GetByName("UrlGoogleMaps"); return(pUrlMapas?.Valor ?? "http://maps.google.com/maps?z=12&t=m&q=loc:{latitud}+{longitud}"); }
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); }
private bool EnviarPush(Comunicacion comunicacion) { Aplicacion aplicacion = comunicacion.Categoria.Aplicacion; // No se envía push si no if (string.IsNullOrEmpty(Aplicacion.CloudKey) || string.IsNullOrEmpty(Aplicacion.Usuario) || string.IsNullOrEmpty(Aplicacion.Clave)) { log.Info($"No se enviará push de la comunicación {comunicacion.ComunicacionID} porque la aplicación {aplicacion.Nombre} no tiene los datos de configuración del servicio push (CloudKey, Usuario, Clave)."); return(false); } try { // Obtener el canal IParametrosServicio pSrv = Servicios.ParametrosServicio(); string claveCanal = "CanalPush"; Parametro canal = pSrv.GetByName(claveCanal); if (canal == null || string.IsNullOrWhiteSpace(canal.Valor)) { log.Info($"No se enviará push de la comunicación {comunicacion.ComunicacionID} porque el parámetro {claveCanal} no existe o no tiene valor."); return(false); } string descripcion = comunicacion.Descripcion.Length > 50 ? comunicacion.Descripcion.Substring(0, 50) + "..." : comunicacion.Descripcion; using (CloudPush push = new CloudPush(Aplicacion.CloudKey, Aplicacion.Usuario, Aplicacion.Clave)) { Respuesta respuesta = push.EnviarMensaje(comunicacion.Titulo, descripcion, true, canal.Valor, comunicacion.ComunicacionID.ToString()); if (respuesta.Meta.Code != 200) { log.Info($"Comunicacion: {comunicacion.ComunicacionID} - El servidor devolvió un error al solicitar push: Código: {respuesta.Meta.Code} Estado: {respuesta.Meta.Status} Mensaje: {respuesta.Meta.Message} Método: {respuesta.Meta.Method_Name}."); return(false); } else { log.Info($"Comunicacion: {comunicacion.ComunicacionID} - Push OK"); log.Info($"CloudKey: {Aplicacion.CloudKey}"); return(true); } } } catch (Exception e) { log.Error("Error en push", e); return(false); } }