public async void SaveFileAsync(UserSettings settingsToSave, string filename) { await semaphore.WaitAsync(); try { UserSettingsFile file = new UserSettingsFile(errorLogger); file.Initialise(settingsToSave); string contents = file.ToXML(); if (contents != null) { if (!filename.EndsWith(".xml")) { filename += ".xml"; } File.WriteAllText(Path.Combine(saveDirectory, filename), contents); } } catch (Exception ex) { errorLogger.LogException(ex, ErrorSeverity.Error); } semaphore.Release(); }
/// <summary> /// Loads command XML files present in the saveDirectory into <see cref="CommandFile"/>s /// </summary> /// <returns></returns> public List <UserSettingsFile> LoadFiles() { List <UserSettingsFile> result = new List <UserSettingsFile>(); foreach (var path in Directory.EnumerateFiles(saveDirectory)) { string contents = File.ReadAllText(path); UserSettingsFile file = new UserSettingsFile(errorLogger); bool loaded = file.FromXML(contents); if (loaded) { result.Add(file); } } return(result); }