/// <summary> /// Patch this registration and create patch twin model to upload /// </summary> /// <param name="model"></param> /// <param name="disabled"></param> public static PublisherRegistration ToPublisherRegistration( this PublisherModel model, bool?disabled = null) { if (model == null) { throw new ArgumentNullException(nameof(model)); } var deviceId = PublisherModelEx.ParseDeviceId(model.Id, out var moduleId); return(new PublisherRegistration { IsDisabled = disabled, DeviceId = deviceId, ModuleId = moduleId, LogLevel = model.LogLevel, JobOrchestratorUrl = model.Configuration?.JobOrchestratorUrl, JobCheckInterval = model.Configuration?.JobCheckInterval, MaxWorkers = model.Configuration?.MaxWorkers, HeartbeatInterval = model.Configuration?.HeartbeatInterval, Capabilities = model.Configuration?.Capabilities? .ToDictionary(k => k.Key, v => v.Value), Connected = model.Connected ?? false, SiteId = model.SiteId, }); }
/// <summary> /// Convert to service model /// </summary> /// <param name="registration"></param> /// <returns></returns> public static PublisherModel ToServiceModel(this PublisherRegistration registration) { return(new PublisherModel { Id = PublisherModelEx.CreatePublisherId(registration.DeviceId, registration.ModuleId), SiteId = registration.SiteId, Certificate = registration.Certificate?.DecodeAsByteArray(), LogLevel = registration.LogLevel, Configuration = registration.ToConfigModel(), Connected = registration.IsConnected() ? true : (bool?)null, OutOfSync = registration.IsConnected() && !registration._isInSync ? true : (bool?)null }); }
/// <summary> /// Convert to service model /// </summary> /// <param name="registration"></param> /// <returns></returns> public static PublisherModel ToServiceModel(this PublisherRegistration registration) { if (registration == null) { return(null); } return(new PublisherModel { Id = PublisherModelEx.CreatePublisherId(registration.DeviceId, registration.ModuleId), SiteId = registration.SiteId, LogLevel = registration.LogLevel, Configuration = registration.ToConfigModel(), Version = registration.Version, Connected = registration.IsConnected() ? true : (bool?)null, OutOfSync = registration.IsConnected() && !registration._isInSync ? true : (bool?)null }); }