protected override void DoPost(CoapExchange exchange) { string payload = exchange.Request.PayloadString; if (payload != null) { EntidadPeticionSegura peticionSegura = JsonConvert.DeserializeObject <EntidadPeticionSegura>(payload); //Deserializamos la peticion en un objeto de tipo json EntidadPeticion peticion = servicioSeguridad.ToEntidadPeticion(peticionSegura); var insercion = Task.Run(async() => await servicioInsertaInformacion.InsertaPeticion(peticion)); //Lanzamos la peticion para que inserte los datos de forma asincrona if (insercion.Result) { exchange.Respond(CoAP.StatusCode.Changed); } else { log.Error("ERR RECURSOPETICION (DoPost) - No se ha podido insertar la información en la base de datos."); exchange.Respond(CoAP.StatusCode.BadRequest); } } else { log.Error("ERR RECURSOPETICION (DoPost) - La petición está vacía."); } }
protected override void DoPost(CoAP.Server.Resources.CoapExchange exchange) { String payload = exchange.Request.PayloadString; EntidadPeticion entidadPeticion = JsonConvert.DeserializeObject <EntidadPeticion>(payload); Task.Run(async() => await servicioInsertaInformacion.InsertaPeticion(entidadPeticion)); Console.WriteLine(entidadPeticion.Sensor); exchange.Respond(CoAP.StatusCode.Changed); }
public async Task TestInsertaInformacion() { DateTime stampInicial = DateTime.UtcNow; float humedad = 23, temperatura = 25; var listaDatos = new List <EntidadDatoBase>() { new EntidadDatoBase() { Humedad = humedad, Temperatura = temperatura, Stamp = stampInicial }, new EntidadDatoBase() { Humedad = humedad, Temperatura = temperatura, Stamp = stampInicial.AddMinutes(1) }, new EntidadDatoBase() { Humedad = humedad, Temperatura = temperatura, Stamp = stampInicial.AddMinutes(2) }, new EntidadDatoBase() { Humedad = humedad, Temperatura = temperatura, Stamp = stampInicial.AddMinutes(3) }, new EntidadDatoBase() { Humedad = humedad, Temperatura = temperatura, Stamp = stampInicial.AddMinutes(4) } }; EntidadPeticion peticion = new EntidadPeticion() { Sensor = sensor, Proyecto = proyecto, EstacionBase = estacionBase, Datos = listaDatos }; try { var resultado = await servicioInsertaInformacion.InsertaPeticion(peticion); Assert.IsNotNull(resultado); Assert.IsTrue(resultado); } catch (Exception ex) { Assert.Fail(ex.Message); } try { var datosBd = await repositorioSensor.ObtenerDatos(idSensor, stampInicial.AddMinutes(-1), stampInicial.AddMinutes(5)); Assert.IsNotNull(datosBd); Assert.AreEqual(listaDatos.Count(), datosBd.Count()); } catch (Exception ex) { Assert.Fail(ex.Message); } }