public Dictionary<string, string> GetSettingsValues(SettingsGroupDescriptor group, string user, string instanceKey) { using (var context = new DataAccessContext()) { var documentKey = new ConfigurationDocumentKey(group.Name, group.Version, user, instanceKey); var broker = context.GetConfigurationDocumentBroker(); var document = broker.GetConfigurationDocument(documentKey); var values = new Dictionary<string, string>(); if (document != null) { var parser = new SettingsParser(); parser.FromXml(document.DocumentText, values); } return values; } }
public void PutSettingsValues(SettingsGroupDescriptor group, string user, string instanceKey, Dictionary<string, string> dirtyValues) { using (var context = new DataAccessContext()) { // next we obtain any previously stored configuration document for this settings group var documentKey = new ConfigurationDocumentKey(group.Name, group.Version, user, instanceKey); var broker = context.GetConfigurationDocumentBroker(); var values = new Dictionary<string, string>(); var parser = new SettingsParser(); var document = broker.GetConfigurationDocument(documentKey); if (document == null) { document = new ConfigurationDocument { CreationTime = Platform.Time, DocumentName = group.Name, DocumentVersionString = VersionUtils.ToPaddedVersionString(group.Version,false,false), User = user, DocumentText = string.Empty }; broker.AddConfigurationDocument(document); } else { // parse document parser.FromXml(document.DocumentText, values); } // update the values that have changed foreach (var kvp in dirtyValues) values[kvp.Key] = kvp.Value; try { if (values.Count > 0) { // generate the document, update local cache and server document.DocumentText = parser.ToXml(values); context.Commit(); } } catch (EndpointNotFoundException e) { Platform.Log(LogLevel.Debug, e, "Unable to save settings to configuration service."); } } }
/// <summary> /// Gets the settings group that immediately precedes the one provided. /// </summary> public SettingsGroupDescriptor GetPreviousSettingsGroup(SettingsGroupDescriptor group) { using (var context = new DataAccessContext()) { var documentKey = new ConfigurationDocumentKey(group.Name, group.Version, null, null); var broker = context.GetConfigurationDocumentBroker(); var document = broker.GetPriorConfigurationDocument(documentKey); if (document != null) { return new SettingsGroupDescriptor(document.DocumentName,VersionUtils.FromPaddedVersionString(document.DocumentVersionString),string.Empty,group.AssemblyQualifiedTypeName,group.HasUserScopedSettings); } return null; } }