public PackageConfigurationAccessor(ApplicationInformation applicationInformation, IFilesystemPersistence<PackageInfo[]> packageInfoFilesystemPersistence)
        {
            if (applicationInformation == null)
            {
                throw new ArgumentNullException("applicationInformation");
            }

            if (packageInfoFilesystemPersistence == null)
            {
                throw new ArgumentNullException("packageInfoFilesystemPersistence");
            }

            this.applicationInformation = applicationInformation;
            this.packageInfoFilesystemPersistence = packageInfoFilesystemPersistence;
            this.packageConfigurationFilePath = this.GetPackageConfigurationFilePath();
        }
        public ConfigFilePublishConfigurationAccessor(ApplicationInformation applicationInformation, IPublishConfigurationFactory publishConfigurationFactory, IFilesystemPersistence<PublishConfiguration[]> publishConfigurationPersistence)
        {
            if (applicationInformation == null)
            {
                throw new ArgumentNullException("applicationInformation");
            }

            if (publishConfigurationPersistence == null)
            {
                throw new ArgumentNullException("publishConfigurationPersistence");
            }

            this.applicationInformation = applicationInformation;
            this.publishConfigurationFactory = publishConfigurationFactory;
            this.publishConfigurationPersistence = publishConfigurationPersistence;

            this.configurationFilePath = this.GetConfigurationFilePath();
        }
        public ConfigFileSourceRepositoryProvider(ApplicationInformation applicationInformation, ISourceRepositoryConfigurationFactory sourceRepositoryConfigurationFactory, IFilesystemPersistence<SourceRepositoryConfiguration[]> filesystemPersistence)
        {
            if (applicationInformation == null)
            {
                throw new ArgumentNullException("applicationInformation");
            }

            if (sourceRepositoryConfigurationFactory == null)
            {
                throw new ArgumentNullException("sourceRepositoryConfigurationFactory");
            }

            if (filesystemPersistence == null)
            {
                throw new ArgumentNullException("filesystemPersistence");
            }

            this.applicationInformation = applicationInformation;
            this.sourceRepositoryConfigurationFactory = sourceRepositoryConfigurationFactory;
            this.filesystemPersistence = filesystemPersistence;
            this.sourceConfigurationFilePath = this.GetSourceConfigurationFilePath();
        }