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 double[] CoordenadasPorDefecto() { IParametrosServicio srv = Servicios.ParametrosServicio(); double[] coordenadas = { 0D, 0D }; // lat, lng if (Aplicacion != null) { Parametro pCoordenadas = srv.GetSingle(p => p.AplicacionID == Aplicacion.AplicacionID && p.Nombre == "CoordenadasIniciales"); // Si no hay parámetro o falla al parsear, devolverá [0,0]. if (pCoordenadas != null) { Regex er = new Regex(@"^(?<latitud>[-+]?(?:\d*[.])?\d+);(?<longitud>[-+]?(?:\d*[.])?\d+)$"); Match m = er.Match(pCoordenadas.Valor); if (m.Success) { coordenadas[0] = double.Parse(m.Groups["latitud"].Value, CultureInfo.InvariantCulture); coordenadas[1] = double.Parse(m.Groups["longitud"].Value, CultureInfo.InvariantCulture); if (coordenadas[0] > 90 || coordenadas[0] < -90 || coordenadas[1] > 180 || coordenadas[1] < -180) { log.Error($"Valor de parámetro CoordenadasIniciales de la aplicación {Aplicacion.AplicacionID} FUERA DE RANGO."); coordenadas[0] = 0; coordenadas[1] = 0; } } else { log.Error($"Error de formato en el parámetro CoordenadasIniciales de la aplicación {Aplicacion.AplicacionID}"); } } } return(coordenadas); }
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); } }