public ConfigurationUpdater(
     ILogger <ConfigurationUpdater> logger,
     AppState appState,
     IMachineLocator machineLocator,
     IConfigurationWriter configurationWriter
     )
 {
     this.logger              = logger ?? throw new ArgumentNullException(nameof(logger));
     this.appState            = appState ?? throw new ArgumentNullException(nameof(appState));
     this.machineLocator      = machineLocator ?? throw new ArgumentNullException(nameof(machineLocator));
     this.configurationWriter = configurationWriter ?? throw new ArgumentNullException(nameof(configurationWriter));
 }
        public AppState(
            IMachineLocator machineLocator,
            IConfigurationReader configurationReader,
            ConfigurationFactory configurationFactory
            )
        {
            this.machineLocator       = machineLocator ?? throw new ArgumentNullException(nameof(machineLocator));
            this.configurationReader  = configurationReader ?? throw new ArgumentNullException(nameof(configurationReader));
            this.configurationFactory = configurationFactory ?? throw new ArgumentNullException(nameof(configurationFactory));

            machines      = Array.Empty <IMachineMetadata>();
            Configuration = null;
        }