public async void SendToDevice() { foreach (JObject jo in ja_messages) { JObject jo_header = (JObject)jo[RbFormatType.RbHeader]; string jo_TargetType = (string)jo_header["TargetType"]; string jo_TargetDeviceGroupId = (string)jo_header["TargetDeviceGroupId"]; string jo_TargetDeviceId = (string)jo_header["TargetDeviceId"]; string msg = JsonConvert.SerializeObject(jo); if (jo_TargetType == RbTargetType.Device) { CloudQueue cloudQueue = cloudQueueClient.GetQueueReference(jo_TargetDeviceId); // Create the queue if it doesn't already exist cloudQueue.CreateIfNotExists(); cloudQueue.AddMessage(new CloudQueueMessage(msg)); } else { DeviceGroup dg = new DeviceGroup(jo_TargetDeviceGroupId, sqlConnString); List <string> deviceList = dg.GetDeviceGroupList(); foreach (string deviceId in deviceList) { CloudQueue cloudQueue = cloudQueueClient.GetQueueReference(deviceId); // Create the queue if it doesn't already exist cloudQueue.CreateIfNotExists(); await cloudQueue.AddMessageAsync(new CloudQueueMessage(msg)); } } } }
public async void SendToDevice() { foreach (JObject jo in ja_messages) { JObject jo_header = (JObject)jo[RbFormatType.RbHeader]; string jo_TargetType = (string)jo_header["TargetType"]; string jo_TargetDeviceGroupId = (string)jo_header["TargetDeviceGroupId"]; string jo_TargetDeviceId = (string)jo_header["TargetDeviceId"]; string msg = JsonConvert.SerializeObject(jo); if (jo_TargetType == RbTargetType.Device) { var sendMessage = new Message(Encoding.UTF8.GetBytes(msg)); ServiceClient serviceClient = ServiceClient.CreateFromConnectionString(iotHubConnString); await serviceClient.SendAsync(jo_TargetDeviceId, sendMessage); await serviceClient.CloseAsync(); } else { DeviceGroup dg = new DeviceGroup(jo_TargetDeviceGroupId, sqlConnString); List <string> deviceList = dg.GetDeviceGroupList(); ServiceClient serviceClient = ServiceClient.CreateFromConnectionString(iotHubConnString); var sendMessage = new Message(Encoding.UTF8.GetBytes(msg)); foreach (string deviceId in deviceList) { await serviceClient.SendAsync(deviceId, sendMessage); } await serviceClient.CloseAsync(); } } }