/// <summary> /// Saves the session configuration. /// </summary> /// <param name="name">The session configuration name.</param> /// <param name="uri">The session configuration uri.</param> /// <param name="appData">The session configuration data as a dictionary.</param> /// <returns>A <see cref="SessionConfig"/> object set with the saved configuration data.</returns> public static SessionConfig Save(string name, string uri, Dictionary <string, string> appData) { ValidateName(name); ValidateUri(uri); SessionConfig sessionConfig = new SessionConfig(name, uri); appData?.ToList().ForEach(i => sessionConfig.SetAppData(i.Key, i.Value)); return(Save(sessionConfig)); }
/// <summary> /// Saves the session configuration. /// </summary> /// <param name="cfg">The <see cref="SessionConfig"/> object to save.</param> /// <returns>A <see cref="SessionConfig"/> set with the saved session configuration data.</returns> /// <exception cref="ArgumentNullException"><paramref name="cfg"/> is null.</exception> public static SessionConfig Save(SessionConfig cfg) { if (cfg == null) { throw new ArgumentNullException("SessionConfig"); } Dictionary <string, object> options = new Dictionary <string, object>(); options.Add("uri", cfg.Uri); if (cfg.appData.Count > 0) { options.Add("appdata", cfg.appData); } return(Save(cfg.Name, new DbDoc(options))); }
public SessionConfig Save(string name, DbDoc config) { var data = ReadConfigData(appdataFile); SessionConfig sessionConfig = new SessionConfig(name, config["uri"]); if (config.values.ContainsKey("appdata")) { var appdata = config.values["appdata"] as Dictionary<string, object>; if (appdata == null) throw new FormatException("appdata"); appdata.ToList().ForEach(i => sessionConfig.SetAppData(i.Key, i.Value.ToString())); } data.Add(name, config); DbDoc json = new DbDoc(data); string dir = Directory.GetParent(appdataFile).FullName; if(!Directory.Exists(dir)) Directory.CreateDirectory(dir); File.WriteAllText(appdataFile, json.ToString()); return sessionConfig; }
/// <summary> /// Gets a specific session configuration. /// </summary> /// <param name="name">The session configuration name.</param> /// <returns>The <see cref="SessionConfig"/> that matches the provided session configuration name.</returns> public static SessionConfig Get(string name) { ValidateName(name); DbDoc config = persistenceHandler.Load(name); SessionConfig cfg = new SessionConfig(name, config["uri"]); if (config.values.ContainsKey("appdata")) { Dictionary <string, object> appdata = config.values["appdata"] as Dictionary <string, object>; if (appdata != null) { foreach (var option in appdata) { cfg.SetAppData(option.Key, option.Value.ToString()); } } } return(cfg); }