Ejemplo n.º 1
0
        private async Task ReceiveMessagesFromDeviceAsync(string partition, CancellationToken ct)
        {
            var eventHubReceiver = eventHubClient.GetDefaultConsumerGroup().CreateReceiver(partition, DateTime.UtcNow);

            while (true)
            {
                if (ct.IsCancellationRequested)
                {
                    break;
                }
                EventData eventData = await eventHubReceiver.ReceiveAsync();

                if (eventData == null)
                {
                    continue;
                }

                string           data    = Encoding.UTF8.GetString(eventData.GetBytes());
                IOTMessageFormat message = JsonConvert.DeserializeObject <IOTMessageFormat>(data);
                // bool isAlert = Convert.ToBoolean(eventData.Properties["waterAlert"]);
                if (message.isDry && notificationSentCount < 5)
                {
                    MyNotification.SendFireBaseNotification(configs.FireBaseConnectionString, message.message);
                    notificationSentCount++;
                }
                else
                {
                    MyNotification.SendFireBaseNotification(configs.FireBaseConnectionString, message.message);
                }
                Console.WriteLine("Message received. Partition: {0} Data: '{1}'", partition, data);
            }
        }
Ejemplo n.º 2
0
        public async Task TurnOFFWater(string deviceName)
        {
            IOTMessageFormat message = new IOTMessageFormat {
                message = "Turn OFF Water"
            };
            var messageString  = JsonConvert.SerializeObject(message);
            var commandMessage = new Message(Encoding.ASCII.GetBytes(messageString));

            commandMessage.MessageId = Guid.NewGuid().ToString();
            commandMessage.Ack       = DeliveryAcknowledgement.Full;
            await _serviceClient.SendAsync(deviceName, commandMessage);
        }