protected override void Process([NotNull] ProcessorArgs args) { Install9Args arguments = (Install9Args)args; if (!arguments.Tasker.UnInstall || arguments.ScriptsOnly) { this.Skip(); return; } InstallParam sqlDbPrefixParam = arguments.Tasker.GlobalParams.FirstOrDefault(p => p.Name == "SqlDbPrefix"); if (sqlDbPrefixParam != null && !string.IsNullOrEmpty(sqlDbPrefixParam.Value)) { foreach (SitecoreEnvironment sitecoreEnvironment in SitecoreEnvironmentHelper.SitecoreEnvironments) { if (sitecoreEnvironment.Name == sqlDbPrefixParam.Value) { SitecoreEnvironmentHelper.SitecoreEnvironments.Remove(sitecoreEnvironment); SitecoreEnvironmentHelper.SaveSitecoreEnvironmentData(SitecoreEnvironmentHelper.SitecoreEnvironments); return; } } } }
public void InitializeWithSoftListRefresh([CanBeNull] string defaultRootFolder = null) { SitecoreEnvironmentHelper.RefreshEnvironments(); using (new ProfileSection("Initialize with soft list refresh")) { // Add check that this isn't an initial initialization if (Instances == null) { Initialize(defaultRootFolder); } using (WebServerManager.WebServerContext context = WebServerManager.CreateContext()) { IEnumerable <Site> sites = GetOperableSites(context, defaultRootFolder); // The trick is in reused PartiallyCachedInstances. We use site ID as identificator that cached instance may be reused. If we can't fetch instance from cache, we create new. PartiallyCachedInstances = sites.Select(site => PartiallyCachedInstances?.Values.FirstOrDefault(cachedInst => cachedInst.ID == site.Id) ?? GetPartiallyCachedInstance(site)) .Where(IsSitecoreOrSitecoreEnvironmentMember) .Where(IsNotHidden).ToDictionary(value => value.Name); Instances = PartiallyCachedInstances?.Values.Select(x => GetInstance(x.ID)).ToArray(); } } }
private void AddEnvironment(SitecoreEnvironment environment) { foreach (SitecoreEnvironment se in SitecoreEnvironmentHelper.SitecoreEnvironments) { if (se.Name == environment.Name) { return; } } SitecoreEnvironmentHelper.SitecoreEnvironments.Add(environment); SitecoreEnvironmentHelper.SaveSitecoreEnvironmentData(SitecoreEnvironmentHelper.SitecoreEnvironments); }
public void Initialize([CanBeNull] string defaultRootFolder = null) { SitecoreEnvironmentHelper.RefreshEnvironments(); using (WebServerManager.WebServerContext context = WebServerManager.CreateContext()) { ProfileSection.Argument("defaultRootFolder", defaultRootFolder); IEnumerable <Site> sites = GetOperableSites(context, defaultRootFolder); PartiallyCachedInstances = GetPartiallyCachedInstances(sites); Instances = GetInstances(); } }
private void AddSitecoreEnvironment(SitecoreEnvironment sitecoreEnvironment) { // Do not add new Sitecore environment if its name already exists in the Environments.json file foreach (SitecoreEnvironment se in SitecoreEnvironmentHelper.SitecoreEnvironments) { if (se.Name == sitecoreEnvironment.Name) { return; } } SitecoreEnvironmentHelper.SitecoreEnvironments.Add(sitecoreEnvironment); SitecoreEnvironmentHelper.SaveSitecoreEnvironmentData(SitecoreEnvironmentHelper.SitecoreEnvironments); }
public void OnClick(Window mainWindow, Instance instance) { if (instance != null) { var connectionString = ProfileManager.GetConnectionString(); var args = new DeleteArgs(instance, connectionString); args.OnCompleted += () => mainWindow.Dispatcher.Invoke(() => OnPipelineCompleted(args)); var index = MainWindowHelper.GetListItemID(instance.ID); int version; if (int.TryParse(instance.Product.ShortVersion, out version) && version < 90) { WizardPipelineManager.Start("delete", mainWindow, args, null, (ignore) => OnWizardCompleted(index, args.HasInstallationBeenCompleted), () => null); } else { string uninstallPath = string.Empty; SitecoreEnvironment env = SitecoreEnvironmentHelper.GetExistingSitecoreEnvironment(instance.Name); if (!string.IsNullOrEmpty(env?.UnInstallDataPath)) { uninstallPath = env.UnInstallDataPath; } else { foreach (string installName in Directory.GetDirectories(ApplicationManager.UnInstallParamsFolder).OrderByDescending(s => s.Length)) { if (instance.Name.StartsWith(Path.GetFileName(installName))) { uninstallPath = installName; break; } } } if (string.IsNullOrEmpty(uninstallPath)) { WindowHelper.ShowMessage("UnInstall files not found."); return; } Delete9WizardArgs delete9WizardArgsargs = new Delete9WizardArgs(instance, connectionString, uninstallPath); WizardPipelineManager.Start("delete9", mainWindow, null, null, (ignore) => OnWizardCompleted(index, delete9WizardArgsargs.HasInstallationBeenCompleted), () => delete9WizardArgsargs); } } }
public void Initialize([CanBeNull] string defaultRootFolder = null) { SitecoreEnvironmentHelper.RefreshEnvironments(); List <Instance> instances = new List <Instance>(); if (ApplicationManager.IsIisRunning) { instances.AddRange(GetIISInstances()); } if (ApplicationManager.IsDockerRunning) { instances.AddRange(GetContainerizedInstances()); } Dictionary <string, Instance> partiallyCachedInstances = instances.ToDictionary(i => i.Name); PartiallyCachedInstances = partiallyCachedInstances; Instances = instances; }
protected override void Process([NotNull] ProcessorArgs arguments) { Assert.ArgumentNotNull(arguments, "arguments"); DeleteContainersArgs args = (DeleteContainersArgs)arguments; Assert.ArgumentNotNull(args, "args"); Guid environmentId = args.EnvironmentId; SitecoreEnvironment environment; if (!SitecoreEnvironmentHelper.TryGetEnvironmentById(environmentId, out environment)) { // TODO: log warn message if the env cannot be resolved from the environments.json return; } SitecoreEnvironmentHelper.SitecoreEnvironments.Remove(environment); SitecoreEnvironmentHelper.SaveSitecoreEnvironmentData(SitecoreEnvironmentHelper.SitecoreEnvironments); return; }
public void InitializeStep(WizardArgs wizardArgs) { var args = wizardArgs as ReinstallWizardArgs; string uninstallPath = string.Empty; SitecoreEnvironment env = SitecoreEnvironmentHelper.GetExistingSitecoreEnvironment(args.Instance.Name); if (!string.IsNullOrEmpty(env?.UnInstallDataPath)) { uninstallPath = env.UnInstallDataPath; } else { foreach (string installName in Directory.GetDirectories(ApplicationManager.UnInstallParamsFolder).OrderByDescending(s => s.Length)) { if (args.Instance.Name.StartsWith(Path.GetFileName(installName))) { uninstallPath = installName; break; } } } if (string.IsNullOrEmpty(uninstallPath)) { WindowHelper.ShowMessage("UnInstall files not found."); wizardArgs.WizardWindow.Close(); } Tasker tasker = new Tasker(uninstallPath); InstallParam sqlServer = tasker.GlobalParams.FirstOrDefault(p => p.Name == "SqlServer"); if (sqlServer != null) { sqlServer.Value = args.ConnectionString.DataSource; } InstallParam sqlAdminUser = tasker.GlobalParams.FirstOrDefault(p => p.Name == "SqlAdminUser"); if (sqlAdminUser != null) { sqlAdminUser.Value = args.ConnectionString.UserID; } InstallParam sqlAdminPass = tasker.GlobalParams.FirstOrDefault(p => p.Name == "SqlAdminPassword"); if (sqlAdminPass != null) { sqlAdminPass.Value = args.ConnectionString.Password; } tasker.UnInstall = true; args.Tasker = tasker; StringBuilder displayText = new StringBuilder(); displayText.AppendLine("Reinstall:"); foreach (var task in tasker.Tasks.Where(t => t.SupportsUninstall())) { displayText.AppendLine(string.Format(" -{0}", task.Name)); } this.TextBlock.Text = displayText.ToString(); args.InstanceName = args.Tasker.GlobalParams.First(p => p.Name == "SqlDbPrefix").Value; }