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;
                    }
                }
            }
        }
Пример #2
0
        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);
        }
Пример #4
0
        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);
                }
            }
        }
Пример #7
0
        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;
        }
Пример #8
0
        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;
        }