public async Task <IHttpActionResult> Detalle(SolicitudComunicacionesModel model) { if (!ComprobarClaves(model)) { return(Unauthorized()); } // Validación del modelo: ComunicacionID tiene valor, UID se ha especificado, Subdominio se ha especificado. if (!model.ComunicacionID.HasValue || string.IsNullOrWhiteSpace(model.UID) || string.IsNullOrWhiteSpace(model.Subdominio)) { log.Warn($"Modelo no válido: ComunicacionID={model.ComunicacionID}, UID={model.UID}, subdominio={model.Subdominio}."); return(BadRequest()); } ComunicacionDetalleModel resul; try { Aplicacion app = Aplicacion(model.Subdominio); IComunicacionesServicio srv = Servicios.ComunicacionesServicio(); Comunicacion c = srv.ConsultarComunicacion(model.ComunicacionID.Value, model.UID, GetClientIp()); await srv.ApplyChangesAsync(); resul = ComunicacionDetalleModel.FromEntity(c); return(Ok(resul)); } catch (Exception e) { log.Error($"Error al consultar comunicación {model.ComunicacionID} el terminal {model.UID}.", e); return(Ok <ComunicacionDetalleModel>(null)); } }
public async Task <IHttpActionResult> Lista(SolicitudComunicacionesModel model) { // Validación del modelo: Subdominio se ha especificado. if (string.IsNullOrWhiteSpace(model.Subdominio)) { return(BadRequest("Subdominio no válido")); } if (!ComprobarClaves(model)) { return(Unauthorized()); } IComunicacionesServicio srv = Servicios.ComunicacionesServicio(); // Si categoriaID es -1, nos están pidiendo las publicaciones destacadas, sin filtrar por // categoría. IEnumerable <Comunicacion> comunicaciones = model.CategoriaID == -1 ? await srv.PublicadasAsync(categoriaID : null, soloDestacadas : true, timestamp : model.TimeStamp) : await srv.PublicadasAsync(categoriaID : model.CategoriaID, timestamp : model.TimeStamp); return(Ok(comunicaciones .Select(ComunicacionDetalleModel.FromEntity) .AsQueryable())); }