public SelfUpdateService(IUserInterface userInterface, ApplicationInformation applicationInformation, IPackageRepositoryBrowser packageRepositoryBrowser, IFilesystemAccessor filesystemAccessor)
        {
            if (userInterface == null)
            {
                throw new ArgumentNullException("userInterface");
            }

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

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

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

            this.userInterface = userInterface;
            this.applicationInformation = applicationInformation;
            this.packageRepositoryBrowser = packageRepositoryBrowser;
            this.filesystemAccessor = filesystemAccessor;
        }
        public PackageUninstaller(IInstallationStatusProvider installationStatusProvider, IPackageConfigurationAccessor packageConfigurationAccessor, IFilesystemAccessor filesystemAccessor, IPowerShellExecutor powerShellExecutor)
        {
            if (installationStatusProvider == null)
            {
                throw new ArgumentNullException("installationStatusProvider");
            }

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

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

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

            this.installationStatusProvider = installationStatusProvider;
            this.packageConfigurationAccessor = packageConfigurationAccessor;
            this.filesystemAccessor = filesystemAccessor;
            this.powerShellExecutor = powerShellExecutor;
        }
        public PrepackagingService(IFilesystemAccessor filesystemAccessor, IAssemblyResourceDownloader assemblyResourceDownloader, IBuildResultFilePathProvider buildResultFilePathProvider, IPrePackagingFolderPathProvider prePackagingFolderPathProvider)
        {
            if (filesystemAccessor == null)
            {
                throw new ArgumentNullException("filesystemAccessor");
            }

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

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

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

            this.filesystemAccessor = filesystemAccessor;
            this.assemblyResourceDownloader = assemblyResourceDownloader;
            this.buildResultFilePathProvider = buildResultFilePathProvider;
            this.prePackagingFolderPath = prePackagingFolderPathProvider.GetPrePackagingFolderPath();
        }
        public NugetPackageExtractor(IFilesystemAccessor fileSystemAccessor)
        {
            if (fileSystemAccessor == null)
            {
                throw new ArgumentNullException("fileSystemAccessor");
            }

            this.fileSystemAccessor = fileSystemAccessor;
        }
        public ConfigurationFileTransformer(IFilesystemAccessor filesystemAccessor)
        {
            if (filesystemAccessor == null)
            {
                throw new ArgumentNullException("filesystemAccessor");
            }

            this.filesystemAccessor = filesystemAccessor;
        }
        public PowerShellSession(IPowerShellHost powerShellHost, IFilesystemAccessor filesystemAccessor)
        {
            this.powerShellHost = powerShellHost;
            this.filesystemAccessor = filesystemAccessor;
            this.pipelineOutput = new StringBuilder();

            Environment.SetEnvironmentVariable("PSExecutionPolicyPreference", "RemoteSigned", EnvironmentVariableTarget.Process);
            this.runspace = RunspaceFactory.CreateRunspace(this.powerShellHost as PSHost);
            this.runspace.Open();

            this.powerShell = System.Management.Automation.PowerShell.Create();
            this.powerShell.Runspace = this.runspace;
        }
        public ConventionBasedBuildResultFilePathProvider(IFilesystemAccessor filesystemAccessor, IRelativeFilePathInfoFactory relativeFilePathInfoFactory)
        {
            if (filesystemAccessor == null)
            {
                throw new ArgumentNullException("filesystemAccessor");
            }

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

            this.filesystemAccessor = filesystemAccessor;
            this.relativeFilePathInfoFactory = relativeFilePathInfoFactory;
        }
        public PackagingFolderPathProvider(ApplicationInformation applicationInformation, IFilesystemAccessor filesystemAccessor)
        {
            if (applicationInformation == null)
            {
                throw new ArgumentNullException("applicationInformation");
            }

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

            this.applicationInformation = applicationInformation;
            this.filesystemAccessor = filesystemAccessor;
        }
        public PowerShellSessionFactory(IPowerShellHost powerShellHost, IFilesystemAccessor filesystemAccessor)
        {
            if (powerShellHost == null)
            {
                throw new ArgumentNullException("powerShellHost");
            }

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

            this.powerShellHost = powerShellHost;
            this.filesystemAccessor = filesystemAccessor;
        }
        public DeploymentScriptResourceDownloader(IAssemblyFileResourceProvider assemblyFileResourceProvider, IFilesystemAccessor filesystemAccessor)
        {
            if (assemblyFileResourceProvider == null)
            {
                throw new ArgumentNullException("assemblyFileResourceProvider");
            }

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

            this.assemblyFileResourceProvider = assemblyFileResourceProvider;
            this.filesystemAccessor = filesystemAccessor;
        }
        public ConfigurationFileTransformationService(IFilesystemAccessor filesystemAccessor, IConfigurationFileTransformer configurationFileTransformer)
        {
            if (filesystemAccessor == null)
            {
                throw new ArgumentNullException("filesystemAccessor");
            }

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

            this.filesystemAccessor = filesystemAccessor;
            this.configurationFileTransformer = configurationFileTransformer;
        }
        public CleanupService(IInstallationStatusProvider installationStatusProvider, IFilesystemAccessor filesystemAccessor)
        {
            if (installationStatusProvider == null)
            {
                throw new ArgumentNullException("installationStatusProvider");
            }

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

            this.installationStatusProvider = installationStatusProvider;
            this.filesystemAccessor = filesystemAccessor;
        }
        public PackagingService(IPrePackagingFolderPathProvider prePackagingFolderPathProvider, IPackagingFolderPathProvider packagingFolderPathProvider, IFilesystemAccessor filesystemAccessor)
        {
            if (prePackagingFolderPathProvider == null)
            {
                throw new ArgumentNullException("prePackagingFolderPathProvider");
            }

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

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

            this.filesystemAccessor = filesystemAccessor;
            this.prePackagingFolderPath = prePackagingFolderPathProvider.GetPrePackagingFolderPath();
            this.packagingFolderPath = packagingFolderPathProvider.GetPackagingFolderPath();
        }
        public PublishingService(IFilesystemAccessor filesystemAccessor, IPackageServerFactory packageServerFactory, IPublishConfigurationAccessor publishConfigurationAccessor)
        {
            if (filesystemAccessor == null)
            {
                throw new ArgumentNullException("filesystemAccessor");
            }

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

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

            this.filesystemAccessor = filesystemAccessor;
            this.packageServerFactory = packageServerFactory;
            this.publishConfigurationAccessor = publishConfigurationAccessor;
        }
        public InstallationStatusProvider(ApplicationInformation applicationInformation, IPackageConfigurationAccessor packageConfigurationAccessor, IFilesystemAccessor filesystemAccessor)
        {
            if (applicationInformation == null)
            {
                throw new ArgumentNullException("applicationInformation");
            }

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

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

            this.applicationInformation = applicationInformation;
            this.packageConfigurationAccessor = packageConfigurationAccessor;
            this.filesystemAccessor = filesystemAccessor;
        }
 public void Setup()
 {
     this.filesystemAccessor = new PhysicalFilesystemAccessor(new DefaultFileEncodingProvider());
     IConfigurationFileTransformer configurationFileTransformer = new ConfigurationFileTransformer(this.filesystemAccessor);
     this.configurationFileTransformationService = new ConfigurationFileTransformationService(this.filesystemAccessor, configurationFileTransformer);
 }
 public void Setup()
 {
     this.encodingProvider = new DefaultFileEncodingProvider();
     this.filesystemAccessor = new PhysicalFilesystemAccessor(this.encodingProvider);
 }
 public void Setup()
 {
     this.applicationInformation = ApplicationInformationProvider.GetApplicationInformation();
     this.fileSystemAccessor = new PhysicalFilesystemAccessor(new DefaultFileEncodingProvider());
     this.buildFolderPathProvider = new BuildFolderPathProvider(this.applicationInformation, this.fileSystemAccessor);
 }
        public PackageInstaller(ApplicationInformation applicationInformation, IFilesystemAccessor filesystemAccessor, IPackageConfigurationAccessor packageConfigurationAccessor, IPackageRepositoryBrowser packageRepositoryBrowser, IPowerShellExecutor powerShellExecutor, IInstallationLogicProvider installationLogicProvider, IPackageUninstaller packageUninstaller, INugetPackageExtractor nugetPackageExtractor, IPackageConfigurationTransformationService packageConfigurationTransformationService, IConfigurationFileTransformationService configurationFileTransformationService)
        {
            if (applicationInformation == null)
            {
                throw new ArgumentNullException("applicationInformation");
            }

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

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

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

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

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

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

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

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

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

            this.applicationInformation = applicationInformation;
            this.filesystemAccessor = filesystemAccessor;
            this.packageConfigurationAccessor = packageConfigurationAccessor;
            this.packageRepositoryBrowser = packageRepositoryBrowser;
            this.powerShellExecutor = powerShellExecutor;
            this.installationLogicProvider = installationLogicProvider;
            this.packageUninstaller = packageUninstaller;
            this.nugetPackageExtractor = nugetPackageExtractor;
            this.packageConfigurationTransformationService = packageConfigurationTransformationService;
            this.configurationFileTransformationService = configurationFileTransformationService;
        }