Beispiel #1
0
        public static Configuration LoadConfiguration(XmlDocument doc)
        {
            var config = new Configuration();

            // Load Extension Configurations
            foreach (XmlNode node in doc.SelectNodes("RenExConfig/ExtensionConfig"))
            {
                Configuration.ExtensionConfig extCfg = new Configuration.ExtensionConfig
                    {
                        Name = node.Attributes["name"].InnerText,
                        MaximumExtensions = Int32.Parse(node.Attributes["maxExt"].InnerText)
                    };

                XmlNode validatorNode = node.SelectSingleNode("FileExtLenValidator");
                if (validatorNode != null)
                {
                    extCfg.Validator = new FileExtLengthValidator(
                        Int32.Parse(validatorNode.Attributes["min"].InnerText),
                        Int32.Parse(validatorNode.Attributes["max"].InnerText));
                }
                validatorNode = node.SelectSingleNode("FileExtListValidator");
                if (validatorNode != null)
                {
                    String[] exts = validatorNode.InnerText.Split(';');
                    for (int i = 0; i < exts.Length; i++)
                        exts[i] = exts[i].Trim(' ');

                    extCfg.Validator = new FileExtListValidator(exts);
                }

                config.ExtensionConfigs[extCfg.Name] = extCfg;
            }

            // Load Saved Rules
            foreach (RenamingRule rule in from XmlNode node in doc.SelectNodes("RenExConfig/Rule") select ReadRule(node))
            {
                config.Rules[rule.Name] = rule;
            }

            // Load Regex Templates
            foreach (XmlNode node in doc.SelectNodes("RenExConfig/RegexTemplate"))
            {
                String name = node.Attributes["name"].InnerText;
                String template = node.InnerText;

                config.RegexTemplates[name] = template;
            }

            return config;
        }
Beispiel #2
0
        private void ShowExtensionSetting(Configuration.ExtensionConfig config)
        {
            txtExtName.Enabled = !Configuration.StringComparer.Equals(config.Name, "Default");
            txtExtName.Text = config.Name;
            nudExtMaxExt.Value = config.MaximumExtensions;

            if (config.Validator is FileExtLengthValidator)
            {
                var validator = (FileExtLengthValidator) config.Validator;
                radExtLenVal.Checked = true;
                nudExtLenMin.Value = validator.MinimumLength;
                nudExtLenMax.Value = validator.MaximumLength;

                // Set defaults
                txtExtList.Clear();
            }
            else
            {
                var validator = (FileExtListValidator) config.Validator;
                radExtListVal.Checked = true;
                txtExtList.Text = String.Join(";", validator.Extensions);

                // Set defaults
                nudExtLenMin.Value = 0;
                nudExtLenMax.Value = 4;
            }
        }
Beispiel #3
0
        public static void SaveConfiguration(Configuration cfg, XmlWriter writer)
        {
            writer.WriteStartDocument();

            using (new XmlElementActionLock(writer, "RenExConfig"))
            {
                // Write Extension Configs
                foreach (var extcfg in cfg.ExtensionConfigs.Values)
                {
                    using (new XmlElementActionLock(writer, "ExtensionConfig"))
                    {
                        writer.WriteAttributeString("name", extcfg.Name);
                        writer.WriteAttributeString("maxExt", extcfg.MaximumExtensions.ToString(CultureInfo.InvariantCulture));

                        if (extcfg.Validator is FileExtLengthValidator)
                        {
                            var validator = (FileExtLengthValidator) extcfg.Validator;
                            using (new XmlElementActionLock(writer, "FileExtLenValidator"))
                            {
                                writer.WriteAttributeString("min",
                                                            validator.MinimumLength.ToString(
                                                                CultureInfo.InvariantCulture));
                                writer.WriteAttributeString("max",
                                                            validator.MaximumLength.ToString(
                                                                CultureInfo.InvariantCulture));
                            }
                        }
                        else
                        {
                            var validator = (FileExtListValidator)extcfg.Validator;
                            using (new XmlElementActionLock(writer, "FileExtListValidator"))
                            {
                                writer.WriteString(String.Join(";", validator.Extensions));
                            }
                        }
                    }
                }

                // Write Rules
                foreach (var rule in cfg.Rules.Values)
                {
                    using (new XmlElementActionLock(writer, "Rule"))
                    {
                        writer.WriteAttributeString("name", rule.Name);
                        writer.WriteAttributeString("delete", rule.DeleteFile.ToString());
                        writer.WriteAttributeString("type", ((Int32)rule.Type).ToString(CultureInfo.InvariantCulture));
                        writer.WriteElementString("RegExp", rule.RegularExpression);
                        writer.WriteElementString("RepExp", rule.ReplacementExpression);
                    }
                }

                // Write Regex Templates
                foreach (var v in cfg.RegexTemplates)
                {
                    using (new XmlElementActionLock(writer, "RegexTemplate"))
                    {
                        writer.WriteAttributeString("name", v.Key);
                        writer.WriteString(v.Value);
                    }
                }
            }
        }
Beispiel #4
0
 public static void LoadConfiguration(String file)
 {
     XmlDocument doc = new XmlDocument();
     doc.Load(file);
     instance = ConfigFileLoader.LoadConfiguration(doc);
 }