private void Save() {
var iniFile = new IniFile(_filename) {
["CAREER"] = {
["COMPLETE"] = Completed.JoinToString(','),
["CURRENTSERIES"] = CurrentSeries,
["AI_LEVEL"] = AiLevel,
["INTRO"] = IsNew ? 0 : 2,
}
};
foreach (var pair in Entries) {
var section = iniFile[pair.Key.ToUpperInvariant()];
section.Clear();
section["LASTSELECTED"] = pair.Value.LastSelectedTimestamp;
section["EVENT"] = pair.Value.SelectedEvent;
if (pair.Value.Points.HasValue) {
section["POINTS"] = pair.Value.Points;
} else {
section.Remove(@"POINTS");
}
foreach (var result in pair.Value.EventsResults.Where(x => x.Value != 0)) {
section[$"EVENT{result.Key}"] = result.Value;
}
foreach (var result in pair.Value.AiPoints.Where(x => x.Value != 0)) {
section[$"AI{result.Key + 1}"] = result.Value;
}
}
if (!File.Exists(_filename + ".backup")) {
File.Copy(_filename, _filename + ".backup");
}
_ignoreChanges = DateTime.Now;
iniFile.Save();
}