//private static readonly NLog.Logger log = NLog.LogManager.GetCurrentClassLogger();

        #endregion Private Fields

        #region Public Constructors

        public DbSwitcherControl(ASVersion version)
        {
            InitializeComponent();

            ConfigChanged += SetBtnStyles;

            Version    = version;
            WorkingDir = AppDomain.CurrentDomain.BaseDirectory;

            ConfigEntries = ZConfigEntry.GetEntries(ConfigDir, Version);

            ComposeUI();
        }
        private Button CreateBtn(ZConfigEntry entry)
        {
            var box = new TextBlock()
            {
                Text              = entry.Config.Name,
                TextWrapping      = TextWrapping.Wrap,
                TextAlignment     = TextAlignment.Center,
                VerticalAlignment = VerticalAlignment.Center
            };

            var btn = new Button
            {
                Tag     = entry,
                Content = box,
                Height  = 50,
                Width   = 120,
                Margin  = new Thickness(10)
            };

            btn.Click += SettingButtonClick;
            return(btn);
        }
        public static List <ZConfigEntry> GetEntries(string dirpath, ASVersion version)
        {
            var    files = Directory.GetFiles(dirpath);
            string pattern;
            string verstr;

            if ((int)version < 3000)
            {
                verstr  = "AS" + ((int)version).ToString();
                pattern = "(?<asversion>" + verstr + ")_(?<name>[A-Za-z_-]+).config.json$";
            }
            else
            {
                verstr  = "RVT" + ((int)version - 90000).ToString();
                pattern = "(?<asversion>" + verstr + ")_(?<name>[A-Za-z_-]+).config.json$";
            }

            var result = new List <ZConfigEntry>();

            foreach (var filename in files)
            {
                var match = Regex.Match(filename, pattern);
                if (match.Success)
                {
                    var          jsonstr = File.ReadAllText(filename);
                    ZConfigEntry entry   = new ZConfigEntry
                    {
                        Version  = version,
                        FileName = filename,
                        Name     = Path.GetFileNameWithoutExtension(filename),
                        Config   = ZDbConfig.Deserialize(jsonstr)
                    };
                    result.Add(entry);
                }
            }

            return(result);
        }