public HttpResponseMessage Get() { if (db.NOISE_SAMPLE == null || db.NOISE_SAMPLE.Count() == 0) { return(Request.CreateResponse(HttpStatusCode.OK, "[]")); } var keyValuePairs = Request.GetQueryNameValuePairs(); if (keyValuePairs.Count() < 4) { return(Request.CreateResponse(HttpStatusCode.BadRequest, "requst invalid")); } var options = RequestSamplesOptions.FromQuery(keyValuePairs); var filteredSamples = SamplesAPI.getSamples(db, options); if (filteredSamples == null) { Request.CreateResponse(HttpStatusCode.BadRequest, "requst invalid"); } return(Request.CreateResponse(HttpStatusCode.OK, filteredSamples)); }
private async void Client_ApplicationMessageReceived(object sender, MqttApplicationMessageReceivedEventArgs e) { var topic = e.ApplicationMessage.Topic; var payload = e.ApplicationMessage.Payload; var result = System.Text.Encoding.UTF8.GetString(payload); if (topic.Equals(NEW_MEASUREMENT_TOPIC_NAME)) { var sample = JsonConvert.DeserializeObject <NOISE_SAMPLE>(result); sample.userName = "******"; sample.Id = db.NOISE_SAMPLE.Count() == 0 ? 0 : (db.NOISE_SAMPLE.Max(x => x.Id) + 1); db.NOISE_SAMPLE.Add(sample); db.SaveChanges(); } else if (topic.StartsWith("clients/", StringComparison.CurrentCulture) && topic.EndsWith("/request", StringComparison.CurrentCulture)) { var requestOptions = JsonConvert.DeserializeObject <RequestSamplesOptions>(result); var samples = SamplesAPI.getSamples(db, requestOptions); var startOfTopic = topic.Substring(0, topic.Length - "/request".Length); var jsonMsg = JsonConvert.SerializeObject(samples); await client.PublishAsync(startOfTopic + "/response", jsonMsg); } }