/// <summary>
 ///     Constructs an initial update performer.
 /// </summary>
 /// <param name="cache">The configuration cache that will receive the channel and directory counts.</param>
 /// <param name="directories">The controller set for accessing directory controllers.</param>
 /// <param name="system">The system controller.</param>
 /// <param name="config">The config controller.</param>
 public InitialUpdatePerformer(ConfigCache?cache, DirectoryControllerSet?directories,
                               SystemController?system, ConfigController?config)
 {
     _cache       = cache ?? throw new ArgumentNullException(nameof(cache));
     _directories = directories ?? throw new ArgumentNullException(nameof(directories));
     _system      = system ?? throw new ArgumentNullException(nameof(system));
     _config      = config ?? throw new ArgumentNullException(nameof(config));
 }
 /// <summary>
 ///     Constructs a directory factory.
 /// </summary>
 /// <param name="controllerSet">
 ///     The directory set from which we get controllers for each directory (to talk to the BAPS server).
 /// </param>
 public DirectoryFactoryService(
     DirectoryControllerSet?controllerSet)
 {
     _controllerSet = controllerSet ?? throw new ArgumentNullException(nameof(controllerSet));
 }