Esempio n. 1
0
        /// <summary>
        /// UpdateDiscovererAsync
        /// </summary>
        /// <param name="discoverer"></param>
        /// <param name="config"></param>
        /// <returns></returns>
        public async Task <string> UpdateDiscovererAsync(DiscovererInfo discoverer, DiscoveryConfigApiModel config)
        {
            var model = new DiscovererUpdateApiModel();

            model.DiscoveryConfig = discoverer.DiscovererModel.DiscoveryConfig;

            if (config.AddressRangesToScan != null)
            {
                model.DiscoveryConfig.AddressRangesToScan = config.AddressRangesToScan;
            }
            if (config.PortRangesToScan != null)
            {
                model.DiscoveryConfig.PortRangesToScan = config.PortRangesToScan;
            }
            if (config.ActivationFilter != null)
            {
                model.DiscoveryConfig.ActivationFilter = config.ActivationFilter;
            }
            if (config.MaxNetworkProbes != null && config.MaxNetworkProbes != 0)
            {
                model.DiscoveryConfig.MaxNetworkProbes = config.MaxNetworkProbes;
            }
            if (config.MaxPortProbes != null && config.MaxPortProbes != 0)
            {
                model.DiscoveryConfig.MaxPortProbes = config.MaxPortProbes;
            }
            if (config.NetworkProbeTimeoutMs != null && config.NetworkProbeTimeoutMs != 0)
            {
                model.DiscoveryConfig.NetworkProbeTimeoutMs = config.NetworkProbeTimeoutMs;
            }
            if (config.PortProbeTimeoutMs != null && config.PortProbeTimeoutMs != 0)
            {
                model.DiscoveryConfig.PortProbeTimeoutMs = config.PortProbeTimeoutMs;
            }
            if (config.IdleTimeBetweenScansSec != null && config.IdleTimeBetweenScansSec != 0)
            {
                model.DiscoveryConfig.IdleTimeBetweenScansSec = config.IdleTimeBetweenScansSec;
            }
            else
            {
                model.DiscoveryConfig.IdleTimeBetweenScansSec = _5MINUTES;
            }
            if (config.DiscoveryUrls != null)
            {
                model.DiscoveryConfig.DiscoveryUrls = config.DiscoveryUrls;
            }

            try {
                await _registryService.UpdateDiscovererAsync(discoverer.DiscovererModel.Id, model);
            }
            catch (Exception exception) {
                var errorMessageTrace = string.Concat(exception.Message, exception.InnerException?.Message ?? "--", exception?.StackTrace ?? "--");
                _logger.Error(errorMessageTrace);
                return(errorMessageTrace);
            }
            return(null);
        }
 public async Task UpdateDiscovererAsync(string discovererId,
                                         [FromBody][Required] DiscovererUpdateApiModel request)
 {
     if (request == null)
     {
         throw new ArgumentNullException(nameof(request));
     }
     await _discoverers.UpdateDiscovererAsync(discovererId,
                                              request.ToServiceModel());
 }
 public async Task SetDiscoveryModeAsync(string discovererId,
                                         [FromQuery][Required] IIoT.OpcUa.Api.Registry.Models.DiscoveryMode mode,
                                         [FromBody] DiscoveryConfigApiModel config)
 {
     var request = new DiscovererUpdateApiModel {
         Discovery       = mode,
         DiscoveryConfig = config
     };
     await _discoverers.UpdateDiscovererAsync(discovererId,
                                              request.ToServiceModel());
 }
Esempio n. 4
0
 /// <summary>
 /// Convert back to service model
 /// </summary>
 /// <returns></returns>
 public static DiscovererUpdateModel ToServiceModel(
     this DiscovererUpdateApiModel model)
 {
     if (model == null)
     {
         return(null);
     }
     return(new DiscovererUpdateModel {
         SiteId = model.SiteId,
         LogLevel = (IIoT.OpcUa.Registry.Models.TraceLogLevel?)model.LogLevel,
         Discovery = (IIoT.OpcUa.Registry.Models.DiscoveryMode?)model.Discovery,
         DiscoveryConfig = model.DiscoveryConfig.ToServiceModel()
     });
 }
        /// <inheritdoc/>
        public async Task UpdateDiscovererAsync(string discovererId,
                                                DiscovererUpdateApiModel content, CancellationToken ct)
        {
            if (content == null)
            {
                throw new ArgumentNullException(nameof(content));
            }
            if (string.IsNullOrEmpty(discovererId))
            {
                throw new ArgumentNullException(nameof(discovererId));
            }
            var request = _httpClient.NewRequest($"{_serviceUri}/v2/discovery/{discovererId}",
                                                 _resourceId);

            request.SetContent(content);
            var response = await _httpClient.PatchAsync(request, ct).ConfigureAwait(false);

            response.Validate();
        }