BF2Statistics.StatsPythonConfig.Save C# (CSharp) Method

Save() public method

Saves the current settings to the BF2Statistics.py file
public Save ( ) : void
return void
        public void Save()
        {
            // Do replacements
            FileContents = Regex.Replace(FileContents, @"stats_enable = ([0-1])", "stats_enable = " + (StatsEnabled ? 1 : 0));
            FileContents = Regex.Replace(FileContents, @"debug_enable = ([0-1])", "debug_enable = " + (DebugEnabled ? 1 : 0));
            FileContents = Regex.Replace(FileContents, @"snapshot_logging = ([0-2])", "snapshot_logging = " + SnapshotLogging);
            FileContents = Regex.Replace(FileContents, @"snapshot_prefix = '([A-Za-z0-9_]*)'", String.Format("snapshot_prefix = '{0}'", SnapshotPrefix));
            FileContents = Regex.Replace(FileContents, @"medals_custom_data = '([A-Za-z0-9_]*)'", String.Format("medals_custom_data = '{0}'", MedalDataProfile));
            FileContents = Regex.Replace(FileContents, @"http_backend_addr = '(.*)'", String.Format("http_backend_addr = '{0}'", AspAddress));
            FileContents = Regex.Replace(FileContents, @"http_central_addr = '(.*)'", String.Format("http_central_addr = '{0}'", CentralAspAddress));
            FileContents = Regex.Replace(FileContents, @"http_backend_port = ([0-9]+)", "http_backend_port = " + AspPort);
            FileContents = Regex.Replace(FileContents, @"http_central_port = ([0-9]+)", "http_central_port = " + CentralAspPort);
            FileContents = Regex.Replace(FileContents, @"http_backend_asp = '(.*)'", String.Format("http_backend_asp = '{0}'", AspFile));
            FileContents = Regex.Replace(FileContents, @"http_central_asp = '(.*)'", String.Format("http_central_asp = '{0}'", CentralAspFile));
            FileContents = Regex.Replace(FileContents, @"enableClanManager = ([0-1])", "enableClanManager = " + (ClanManager.Enabled ? 1 : 0));
            FileContents = Regex.Replace(FileContents, @"serverMode = ([0-4])", "serverMode = " + ClanManager.ServerMode);
            FileContents = Regex.Replace(FileContents, @"'clantag',[\s|\t]+'([A-Za-z0-9_=-\|\s\[\]]*)'", String.Format("'clantag', '{0}'", ClanManager.ClanTagRequirement));
            FileContents = Regex.Replace(FileContents, @"'score',[\s|\t]+([0-9]+)", String.Format("'score', {0}", ClanManager.ScoreRequirement));
            FileContents = Regex.Replace(FileContents, @"'time',[\s|\t]+([0-9]+)", String.Format("'time', {0}", ClanManager.TimeRequirement));
            FileContents = Regex.Replace(FileContents, @"'kdratio',[\s|\t]+([0-9.]+)", String.Format("'kdratio', {0}", ClanManager.KDRatioRequirement));
            FileContents = Regex.Replace(FileContents, @"'banned',[\s|\t]+([0-9]+)", String.Format("'banned', {0}", ClanManager.MaxBanCount));
            FileContents = Regex.Replace(FileContents, @"'country',[\s|\t]+'([A_Za-z]*)'", String.Format("'country', '{0}'", ClanManager.CountryRequirement));
            FileContents = Regex.Replace(FileContents, @"'rank',[\s|\t]+([0-9]+)", String.Format("'rank', {0}", ClanManager.RankRequirement));

            // Do replacement for Xpack Enabled Mods
            string val = "";
            foreach (string mod in XpackMedalMods)
                val += "'mods/" + mod.ToLowerInvariant() + "',";

            FileContents = Regex.Replace(FileContents, @"medals_xpack_mods = \[(?<value>[A-Za-z0-9_/\s',]*)\]", "medals_xpack_mods = [" + val.Trim(',') + "]");

            // Save File
            using (Stream Str = SettingsFile.Open(FileMode.Truncate, FileAccess.Write))
            using (StreamWriter Wtr = new StreamWriter(Str))
            {
                Wtr.Write(FileContents);
                Wtr.Flush();
            }
        }