示例#1
0
        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));
        }
示例#2
0
        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);
            }
        }