public void Save()
        {
            string        settingsFilePath      = UserConfiguration.GetSettingsFilePath();
            DirectoryInfo settingsFileDirectory = Directory.GetParent(settingsFilePath);

            if (!settingsFileDirectory.Exists)
            {
                settingsFileDirectory.Create();
            }
            XmlSerializer serializer = new XmlSerializer(typeof(UserConfiguration));

            using (XmlWriter writer = XmlWriter.Create(settingsFilePath, new XmlWriterSettings()
            {
                Indent = true
            })) {
                serializer.Serialize(writer, this);
            }
        }
        public static UserConfiguration GetConfiguration()
        {
            UserConfiguration _return          = null;
            string            settingsFilePath = UserConfiguration.GetSettingsFilePath();

            if (!File.Exists(settingsFilePath))
            {
                _return = new UserConfiguration();
            }
            else
            {
                XmlSerializer serializer = new XmlSerializer(typeof(UserConfiguration));
                using (XmlReader reader = XmlReader.Create(settingsFilePath)) {
                    _return = serializer.Deserialize(reader) as UserConfiguration;
                }
            }

            return(_return);
        }