/// <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));
 }
Beispiel #2
0
            /// <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;
 }