Exemple #1
0
 /// <summary>
 /// Convert to service model
 /// </summary>
 /// <param name="registration"></param>
 /// <returns></returns>
 public static DiscovererModel ToServiceModel(this DiscovererRegistration registration)
 {
     return(new DiscovererModel {
         Discovery = registration.Discovery != DiscoveryMode.Off ?
                     registration.Discovery : (DiscoveryMode?)null,
         Id = DiscovererModelEx.CreateDiscovererId(registration.DeviceId, registration.ModuleId),
         SiteId = registration.SiteId,
         LogLevel = registration.LogLevel,
         DiscoveryConfig = registration.ToConfigModel(),
         Connected = registration.IsConnected() ? true : (bool?)null,
         OutOfSync = registration.IsConnected() && !registration._isInSync ? true : (bool?)null
     });
 }
        /// <summary>
        /// Create unique application id
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public static string CreateApplicationId(ApplicationInfoModel model)
        {
            if (model == null)
            {
                throw new ArgumentNullException(nameof(model));
            }
            var siteOrGatewayId = model.SiteId;

            if (siteOrGatewayId == null && model.DiscovererId != null)
            {
                siteOrGatewayId = DiscovererModelEx.ParseDeviceId(model.DiscovererId, out _);
            }
            return(CreateApplicationId(siteOrGatewayId, model.ApplicationUri,
                                       model.ApplicationType));
        }
Exemple #3
0
        /// <summary>
        /// Get site or gateway id from registration
        /// </summary>
        /// <param name="registration"></param>
        /// <returns></returns>
        public static string GetSiteOrGatewayId(this EndpointRegistration registration)
        {
            if (registration == null)
            {
                return(null);
            }
            var siteOrGatewayId = registration?.SiteId;

            if (siteOrGatewayId == null)
            {
                var id = registration?.DiscovererId ?? registration?.SupervisorId;
                if (id != null)
                {
                    siteOrGatewayId = DiscovererModelEx.ParseDeviceId(id, out _);
                }
            }
            return(siteOrGatewayId);
        }
        /// <summary>
        /// Patch this registration and create patch twin model to upload
        /// </summary>
        /// <param name="model"></param>
        /// <param name="disabled"></param>
        public static DiscovererRegistration ToDiscovererRegistration(
            this DiscovererModel model, bool?disabled = null)
        {
            if (model == null)
            {
                throw new ArgumentNullException(nameof(model));
            }
            var deviceId = DiscovererModelEx.ParseDeviceId(model.Id,
                                                           out var moduleId);

            return(new DiscovererRegistration {
                IsDisabled = disabled,
                DeviceId = deviceId,
                ModuleId = moduleId,
                LogLevel = model.LogLevel,
                Discovery = model.RequestedMode ?? DiscoveryMode.Off,
                AddressRangesToScan = model.RequestedConfig?.AddressRangesToScan,
                NetworkProbeTimeout = model.RequestedConfig?.NetworkProbeTimeout,
                MaxNetworkProbes = model.RequestedConfig?.MaxNetworkProbes,
                PortRangesToScan = model.RequestedConfig?.PortRangesToScan,
                PortProbeTimeout = model.RequestedConfig?.PortProbeTimeout,
                MaxPortProbes = model.RequestedConfig?.MaxPortProbes,
                IdleTimeBetweenScans = model.RequestedConfig?.IdleTimeBetweenScans,
                MinPortProbesPercent = model.RequestedConfig?.MinPortProbesPercent,
                SecurityModeFilter = model.RequestedConfig?.ActivationFilter?.
                                     SecurityMode,
                TrustListsFilter = model.RequestedConfig?.ActivationFilter?.
                                   TrustLists.EncodeAsDictionary(),
                SecurityPoliciesFilter = model.RequestedConfig?.ActivationFilter?.
                                         SecurityPolicies.EncodeAsDictionary(),
                DiscoveryUrls = model.RequestedConfig?.DiscoveryUrls?.
                                EncodeAsDictionary(),
                Locales = model.RequestedConfig?.Locales?.
                          EncodeAsDictionary(),
                Connected = model.Connected ?? false,
                Version = null,
                SiteId = model.SiteId,
            });
        }