Exemplo n.º 1
0
        ///<inheritdoc/>
        public async Task <bool> RegisterDeviceForPublishingAsync(IAzureEnabledNetworkDevice azureEnabledNetworkDevice)
        {
            try
            {
                var handle = _handleFactory(azureEnabledNetworkDevice);
                if (await handle.Initialize().ConfigureAwait(false))
                {
                    handle.StartPublishing();
                }
                else
                {
                    _logger?.LogError(
                        $"Failed to register device {azureEnabledNetworkDevice?.AzureDeviceParameters?.AzureDeviceId}");
                    return(false);
                }
            }
            catch (Exception e)
            {
                _logger?.LogError(e,
                                  $"Failed to register device {azureEnabledNetworkDevice?.AzureDeviceParameters?.AzureDeviceId}");
                throw;
            }

            return(true);
        }
Exemplo n.º 2
0
        public AzurePublisherDeviceHandle(
            IAzureEnabledNetworkDevice device,
            ILogger <AzurePublisherDeviceHandle> logger)
        {
            _logger = logger;
            device.AzureDeviceParameters.AssertNotNull();

            Device = device;
            _logger.BeginScope($"Device:{Device.AzureDeviceParameters.AzureDeviceId}");
        }
Exemplo n.º 3
0
        ///<inheritdoc/>
        public async Task CancelDevicePublishingAsync(IAzureEnabledNetworkDevice device)
        {
            var existingHandle = _deviceHandles.FirstOrDefault(handle => handle.Device == device);

            if (existingHandle is null)
            {
                throw new ArgumentException(
                          $"Provided {nameof(device)} parameter has not been registered for publishing.");
            }

            _deviceHandles.Remove(existingHandle);
            await existingHandle.DisposeAsync();
        }