public string SaveToJson(TemplateTable <TKey, TValue> table) { var writer = new StringWriter(); SaveTo(table, writer); return(writer.ToString()); }
public TemplateTableJsonPatchLoader(TemplateTable <TKey, TValue> referenceTable, JArray patchJson, JsonSerializer serializer, bool delayedLoad) { _referenceTable = referenceTable; _patchJson = patchJson; _serializer = serializer; _delayedLoad = delayedLoad; }
public TemplateTableJsonPatchLoader(TemplateTable <TKey, TValue> referenceTable, string patchJson, bool delayedLoad) { _referenceTable = referenceTable; _patchJson = JArray.Parse(patchJson); _serializer = new JsonSerializer(); _delayedLoad = delayedLoad; }
public TemplateTableBsonPackPatchLoader(TemplateTable <TKey, TValue> referenceTable, Stream stream, JsonSerializer serializer, bool delayedLoad) { _referenceTable = referenceTable; _stream = stream; _serializer = serializer; _delayedLoad = delayedLoad; }
public void SaveTo(TemplateTable <TKey, TValue> table, TextWriter writer) { var items = table.ToList(); items.Sort((x, y) => x.Key.CompareTo(y.Key)); var values = items.Select(i => i.Value); _serializer.Serialize(writer, values); }
public void SaveTo(TemplateTable <TKey, TValue> table, Stream stream) { var itemList = table.Select(i => { JToken token; using (var writer = new JTokenWriter()) { _serializer.Serialize(writer, i.Value); token = writer.Token; } return(new KeyValuePair <TKey, JToken>(i.Key, token)); }); TemplateTableBsonPackIO <TKey> .Save(itemList, stream); }
public void SaveTo(TemplateTable <TKey, TValue> table, Stream stream) { var items = table.ToList(); items.Sort((x, y) => x.Key.CompareTo(y.Key)); // signature 'TPP1' (4 bytes) stream.Write(new byte[] { 0x54, 0x50, 0x50, 0x31 }, 0, 4); // count (4 bytes) var countBuf = BitConverter.GetBytes(items.Count); stream.Write(countBuf, 0, countBuf.Length); // keys & values var keysStream = new MemoryStream(); var keysStreamWriter = new BinaryWriter(keysStream); var valuesStream = new MemoryStream(); foreach (var i in items) { // serialize value by BsonWriter var curPos = valuesStream.Position; _typeModel.Serialize(valuesStream, i.Value); var valueLength = (int)(valuesStream.Position - curPos); // serialize key and the length of value stream StreamGenericHelper.Write(keysStreamWriter, i.Key); keysStreamWriter.Write(valueLength); } var keysBuf = keysStream.ToArray(); stream.Write(BitConverter.GetBytes(keysBuf.Length), 0, 4); stream.Write(keysBuf, 0, keysBuf.Length); var valuesBuf = valuesStream.ToArray(); stream.Write(valuesBuf, 0, valuesBuf.Length); }