/// <summary> /// Persists the provided <see cref="UserSettings"/> object to disk. /// </summary> /// <param name="settings"></param> public void Save(UserSettings settings) { string filename = string.Format(@"{0}\{1}.xml", SpruceSettings.UserSettingsDirectory, settings.UserId); try { using (FileStream stream = new FileStream(filename, FileMode.Create, FileAccess.Write)) { XmlSerializer serializer = new XmlSerializer(typeof(UserSettings)); serializer.Serialize(stream, settings); } } catch (IOException e) { Log.Warn(e, "An IO error occurred saving the UserSettings file for user {0} id {1}", settings.Name, settings.UserId); } catch (FormatException e) { Log.Warn(e, "A FormatException error occurred saving the UserSettings file for user {0} id {1}", settings.Name, settings.UserId); } catch (Exception e) { Log.Warn(e, "An unhandled exception error occurred saving the UserSettings file for user {0} id {1}", settings.Name, settings.UserId); } }
/// <summary> /// Persists the provided <see cref="UserSettings"/> object to the RavenDB store. /// </summary> /// <param name="settings"></param> public void Save(UserSettings settings) { using (IDocumentSession session = _documentStore.OpenSession()) { session.Store(settings); session.SaveChanges(); } }
/// <summary> /// Loads a <see cref="UserSettings"/> object for the user id provided from the RavenDB store. /// </summary> public UserSettings Load(Guid userId) { using (IDocumentSession session = _documentStore.OpenSession()) { UserSettings settings = session.Load<UserSettings>(userId.ToString()); if (settings == null) settings = new UserSettings(userId); return settings; } }