public void ParseDatabaseAndLanguages([NotNull] string databasesAndLanguages)
        {
            Assert.ArgumentNotNull(databasesAndLanguages, nameof(databasesAndLanguages));

            foreach (var pair in databasesAndLanguages.Split('|'))
            {
                var parts = pair.Split('^');

                var database = Factory.GetDatabase(parts[0]);
                if (database == null)
                {
                    continue;
                }

                for (var i = 1; i < parts.Length; i++)
                {
                    var languageName = parts[i];
                    var language     = LanguageManager.GetLanguage(languageName, database);

                    if (language != null)
                    {
                        DatabasesAndLanguages.Add(new DatabaseLanguageDescriptor(database, language));
                    }
                }
            }
        }
        private void UpdateConfigFile()
        {
            var writer = new StringWriter();
            var output = new XmlTextWriter(writer)
            {
                Formatting = Formatting.Indented
            };

            var ignore = new List <string>();

            if (!string.IsNullOrEmpty(InactiveValidations))
            {
                ignore.AddRange(InactiveValidations.Split(SplitterChars, StringSplitOptions.RemoveEmptyEntries));
            }

            output.WriteStartElement("SitecoreRocksValidation");

            Site.Connection.Save(output);

            var databases = DatabasesAndLanguages.Split('|');

            foreach (var database in databases)
            {
                var parts        = database.Split('^');
                var databaseName = parts[0];
                var languages    = string.Join(",", parts.Skip(1));

                output.WriteStartElement("Validate");

                output.WriteAttributeString("DatabaseName", databaseName);
                output.WriteAttributeString("Languages", languages);
                output.WriteAttributeString("Context", "Site");

                if (ignore.Any())
                {
                    foreach (var validation in ignore)
                    {
                        output.WriteStartElement("Ignore");
                        output.WriteValue(validation);
                        output.WriteEndElement();
                    }
                }

                output.WriteEndElement();
            }

            output.WriteEndElement();

            ConfigFileTextBox.Text = writer.ToString();
        }