public static ConfigNode ToConfigNode(this HarddiskFile file, string nodeName) { var node = new ConfigNode(nodeName); node.AddValue(FilenameValueString, file.Name); FileContent content = file.ReadAll(); if (content.Category == FileCategory.KSM) { node.AddValue("line", PersistenceUtilities.EncodeBase64(content.Bytes)); } else { if (SafeHouse.Config.UseCompressedPersistence) { node.AddValue("line", EncodeBase64(content.String)); } else { node.AddValue("line", PersistenceUtilities.EncodeLine(content.String)); } } return(node); }
private void HandleValue(ConfigNode configNode, string key, object value) { if (value is Dump) { configNode.AddNode(key, ToConfigNode(key, value as Dump)); } else if (value is List <object> ) { configNode.AddNode(key, ToConfigNode(key, value as List <object>)); } else if (value is int) { configNode.AddNode(key, ScalarToConfigNode(key, ScalarKey, Convert.ToString(value))); } else if (value is double) { configNode.AddNode(key, ScalarToConfigNode(key, ScalarKey, ((double)value).ToString("R"))); } else if (value is bool) { configNode.AddNode(key, ScalarToConfigNode(key, BooleanKey, Convert.ToString(value))); } else { configNode.AddValue(key, PersistenceUtilities.EncodeLine(value.ToString())); } }
public void OnSave(ConfigNode node) { try { var contextNode = new ConfigNode("context"); // Save variables if (variables.Count > 0) { var varNode = new ConfigNode("variables"); foreach (var kvp in variables) { if (!(kvp.Value is BoundVariable) && (kvp.Value.Name.IndexOfAny(new[] { '*', '-' }) == -1)) // variables that have this characters are internal and shouldn't be persisted { if (kvp.Value.Value.GetType().ToString() == "System.String") // if the variable is a string, enclose the value in "" { varNode.AddValue(kvp.Key.TrimStart('$'), (char)34 + PersistenceUtilities.EncodeLine(kvp.Value.Value.ToString()) + (char)34); } else { varNode.AddValue(kvp.Key.TrimStart('$'), PersistenceUtilities.EncodeLine(kvp.Value.Value.ToString())); } } } contextNode.AddNode(varNode); } node.AddNode(contextNode); } catch (Exception e) { if (shared.Logger != null) { shared.Logger.Log(e); } } }
public static ConfigNode ToConfigNode(this ProgramFile programFile, string nodeName) { var node = new ConfigNode(nodeName); node.AddValue(FILENAME_VALUE_STRING, programFile.Filename); if (programFile.Category == FileCategory.KSM) { node.AddValue("line", EncodeBase64(programFile.BinaryContent)); } else { if (Config.Instance.UseCompressedPersistence) { node.AddValue("line", EncodeBase64(programFile.StringContent)); } else { node.AddValue("line", PersistenceUtilities.EncodeLine(programFile.StringContent)); } } return(node); }