private static void WriteInsertions(Stream stream, Table table) { var tempFileName = Path.GetTempFileName(); try { var options = new ScriptingOptions { AppendToFile = true, EnforceScriptingOptions = true, FileName = tempFileName, ScriptData = true, ScriptSchema = false, Encoding = DEFAULT_ENCODING, NoCommandTerminator = true, }; _ = table.EnumScript(options); using var tempFileStream = File.OpenRead(tempFileName); // Skipping encoding preamble bytes. tempFileStream.Position = DEFAULT_ENCODING.GetPreamble().Length; tempFileStream.CopyTo(stream); } finally { if (File.Exists(tempFileName)) { File.Delete(tempFileName); } } }
public ScriptValue Call(ScriptValue obj, ScriptValue[] Parameters, int length) { var request = CreateRequest(Parameters[0].ToString(), "POST"); if (length > 1) { using (var stream = request.GetRequestStream()) { var value = Parameters[1]; var buffer = value.valueType == ScriptValue.stringValueType ? DEFAULT_ENCODING.GetBytes(value.ToString()) : value.Value as byte[]; stream.Write(buffer, 0, buffer.Length); } } if (length > 2) { Parameters[2].Get <ScriptFunction>().call(ScriptValue.Null, request); } using (var stream = new MemoryStream()) { ReadStream(request, stream); return(new ScriptValue(stream.ToArray())); } }