예제 #1
0
        // Message handler
        private void OnSetDeviceStatus(SetDeviceStatus msg)
        {
            string    uniqueDeviceActorName = ActorSystemReferences.ActorNames.DeviceMqttTranslatorActorNamePrefix + _deviceDto.DeviceId;
            IActorRef deviceActor           = Context.Child(uniqueDeviceActorName);

            if (deviceActor.IsNobody())
            {
                _mqttDeviceTranslatorActor = Context.ActorOf(Props.Create <DeviceMqttTranslatorActor>(_deviceDto.DeviceId), ActorSystemReferences.ActorNames.DeviceMqttTranslatorActorNamePrefix + _deviceDto.DeviceId);
            }

            _mqttDeviceTranslatorActor.Forward(msg);
        }
예제 #2
0
        // Message handlers
        private void OnSetDeviceStatus(SetDeviceStatus msg)
        {
            string uniqueDeviceActorName = ActorSystemReferences.ActorNames.DeviceActorNamePrefix + msg.DeviceId;

            IActorRef deviceActorRef = Context.Child(uniqueDeviceActorName);

            if (deviceActorRef.IsNobody())
            {
                Sender.Tell(new SetDeviceStatusReceived(unexistingDevice: true), Self);
            }
            else
            {
                deviceActorRef.Forward(msg);
            }
        }
예제 #3
0
        public void SetDeviceStatus()
        {
            string expected = File.ReadAllText(Path.Combine(_requestsTestDataPath, "SetDeviceStatus.xml"));
            var    request  = new SetDeviceStatus
            {
                SessionId  = "sid",
                DeviceID   = "abcd1234",
                StatusType = TMobileDeviceStatusSet.Allowed
            };
            var xml = request.ToXml().InnerXmlFormatted();

            Assert.AreEqual(expected, xml);

            XmlDocument doc = new XmlDocument();

            doc.LoadXml(File.ReadAllText(Path.Combine(_responsesTestDataPath, "SetDeviceStatus.xml")));
            var response = request.FromHttpRequestResult(new HttpRequestResult {
                Response = doc.InnerXml
            });

            Assert.AreEqual("result", response.Type);
            Assert.True(response.Success);
        }
 private void OnSetDeviceStatus(SetDeviceStatus msg)
 {
     _sender = Sender;
     _client.Publish(DeviceTopic.SetDeviceState + "/" + _deviceId, (new MqttDeviceStateDto(msg.Status)).Serialize());
 }