/// <summary> /// Create client adapter /// </summary> /// <param name="product"></param> /// <param name="onError"></param> /// <param name="transportSetting"></param> /// <returns></returns> private Task <IClient> CreateAdapterAsync(string product, Action onError, ITransportSettings transportSetting = null) { if (string.IsNullOrEmpty(ModuleId)) { if (_cs == null) { throw new InvalidConfigurationException( "No connection string for device client specified."); } return(DeviceClientAdapter.CreateAsync(product, _cs, DeviceId, transportSetting, _timeout, RetryPolicy, onError, _logger)); } return(ModuleClientAdapter.CreateAsync(product, _cs, DeviceId, ModuleId, transportSetting, _timeout, RetryPolicy, onError, _logger)); }
/// <summary> /// Factory /// </summary> /// <param name="product"></param> /// <param name="cs"></param> /// <param name="deviceId"></param> /// <param name="transportSetting"></param> /// <param name="timeout"></param> /// <param name="retry"></param> /// <param name="onConnectionLost"></param> /// <param name="logger"></param> /// <returns></returns> public static async Task<IClient> CreateAsync(string product, IotHubConnectionStringBuilder cs, string deviceId, ITransportSettings transportSetting, TimeSpan timeout, IRetryPolicy retry, Action onConnectionLost, ILogger logger) { var client = Create(cs, transportSetting); var adapter = new DeviceClientAdapter(client); // Configure client.OperationTimeoutInMilliseconds = (uint)timeout.TotalMilliseconds; client.SetConnectionStatusChangesHandler((s, r) => adapter.OnConnectionStatusChange(deviceId, onConnectionLost, logger, s, r)); if (retry != null) { client.SetRetryPolicy(retry); } client.DiagnosticSamplingPercentage = 5; client.ProductInfo = product; await client.OpenAsync(); return adapter; }
public MethodHandler(DeviceClientAdapter deviceClientAdapter) { this.deviceClientAdapter = deviceClientAdapter; }