asp.net检测/响应数据库中的更改

时间:2014-10-06 09:43:52

标签: asp.net sql-server azure

我正在开展一个项目,我会快速概述一下这个问题。

沟通链是这样的:

Zigbee sensors <-> Raspberry pi with zigbee radio  <-> API <-> (sever,db)

数据库包含有关每个传感器的数据(id,它们所属的树莓派,如果树莓派可以找到它们) 所以传感器对象看起来像这样:

{"id": "2",
"panId": "1234",
"communicationDeviceId": "null",
"recognized": "false"}

系统的目的是树莓派将告诉服务器它找到了哪些传感器。因此,如果树莓派应该找到3个传感器,例如。 1,2和3它只找到第一个,它将发送一个API调用,用“true”更新两个传感器识别字段。

到目前为止,我已经设置好了,所以Raspberry pi可以通过调用来找出它需要搜索哪些传感器:“api / v1 / communicationdevice / id / sensors”其中id是覆盆子pi的id。注意:communicationdevice是raspberry pi

为了更新传感器,我做了一个像这样的PUT方法:

public HttpResponseMessage Put([FromBody] ICollection<Sensor> changedSensors )
        {
            if (_repo.ChangeSensors(changedSensors) && _repo.Save())
            {
                return Request.CreateResponse(HttpStatusCode.OK);
            }

            return Request.CreateResponse(HttpStatusCode.BadRequest, changedSensors);
        }

其中_repo.changeSensors(changedSensors)如下所示:

        public bool ChangeSensors(ICollection<Sensor> sensors)
    {
        try
        {
            foreach (var sensor in sensors)
            {
                _ctx.Entry(sensor).State = EntityState.Modified;
            }
            return true;
        }
        catch (Exception ex)
        {
            return false;
            throw;
        }
    }

我已经测试了这个功能,它按预期工作。

我正在Microsoft Azure上部署并使用SQL Server数据库。

我的问题是: 如果与Rasberry pi关联的所有传感器的“已识别”字段设置为true,如何让我的系统对更新做出反应并测试?

0 个答案:

没有答案