protected virtual void OnInstallPackages(FileTransaction fileTransaction, IEnumerable <PackageInfo> packages, IProductConfigurationProvider productConfigProvider, IPackageConfigurationProvider packageConfigProvider, IDeploymentStartegyProvider deploymentStartegy) { foreach (var package in packages) { var files = deploymentStartegy.GetPackageFiles(package.Id, package.PackagePath).ToList(); var installedFiles = new List <string>(); var e = new BeforePackageInstalledEvent(); e.FilesToInstall.AddRange(files); RaiseDeploymentEvent(e, package.Id); foreach (var file in e.FilesToInstall) { if (file.Action == FileAction.Copy) { fileTransaction.InstallFile(file); installedFiles.Add(file.TargetFileName); } else if (file.Action == FileAction.Delete) { fileTransaction.DeleteFile(file.TargetFileName); } } var cfg = packageConfigProvider.GetPackageConfiguration(package.Id, package.PackagePath); productConfigProvider.SetPackageConfiguration(cfg, installedFiles, package.Dependencies.Select(x => x.Id.ToString())); RaiseDeploymentEvent(new AfterPackageInstalledEvent(), package.Id); Logger.Info($"Package {package.Id} installed"); } }
public RuntimeEngine(RuntimeConfiguration configuration) { RuntimeContext = configuration.RuntimeContext; _configurationProvider = configuration .ProductConfigurationSource .GetProductConfigurationProvider(RuntimeContext.ProductPath); }
/// <summary> /// Installs provided packages /// </summary> /// <param name="fileTransaction">File transaction to use</param> /// <param name="packages">Packages to install</param> /// <param name="productConfigProvider">Product configuration</param> /// <param name="packageConfigProvider">Packages configuration</param> /// <param name="deploymentStartegy">Deployment strategy to use</param> public void InstallPackages(FileTransaction fileTransaction, IEnumerable <PackageInfo> packages, IProductConfigurationProvider productConfigProvider, IPackageConfigurationProvider packageConfigProvider, IDeploymentStartegyProvider deploymentStartegy) { OnInstallPackages(fileTransaction, packages, productConfigProvider, packageConfigProvider, deploymentStartegy); }
public DefaultDeploymentContext(string productPath, string framework, IPackageConfigurationProvider packageConfigurationProvider, IProductConfigurationProvider productConfigurationProvider) { ProductPath = productPath; TargetFramework = framework; PackageConfigurationProvider = packageConfigurationProvider; ProductConfigurationProvider = productConfigurationProvider; }
protected virtual void OnDeletePackages(FileTransaction fileTransaction, IEnumerable <PackageId> packages, IProductConfigurationProvider productConfig) { foreach (var packageId in packages) { var files = productConfig.GetInstalledFiles(packageId, true); var deleteEvent = new BeforePackageUninstalledEvent(); deleteEvent.FilesToDelete.AddRange(files); RaiseDeploymentEvent(deleteEvent, packageId); foreach (var file in deleteEvent.FilesToDelete) { fileTransaction.DeleteFile(file); } productConfig.RemovePackageConfiguration(packageId); RaiseDeploymentEvent(new AfterPackageUninstalledEvent(), packageId); Logger.Info($"Package {packageId} uninstalled"); } }
/// <summary> /// Deletes provided packages /// </summary> /// <param name="fileTransaction">Transaction to track file system changes</param> /// <param name="packages">Packages to delete</param> /// <param name="productConfig">Current product configuration</param> public void DeletePackages(FileTransaction fileTransaction, IEnumerable <PackageId> packages, IProductConfigurationProvider productConfig) { OnDeletePackages(fileTransaction, packages, productConfig); }
internal RuntimeEngine(RuntimeContext runtimeContext, IProductConfigurationProvider configurationProvider) { RuntimeContext = runtimeContext; ConfigurationProvider = configurationProvider; }