private ResultBuffer StreamToResultBuffer(MemoryStream memoryStream, string applicationName)
{
ResultBuffer resultBuffer
= new ResultBuffer
(new TypedValue
(Convert
.ToInt32(DxfCode
.ExtendedDataRegAppName), applicationName
)); var i = 0;
memoryStream.Seek(0, SeekOrigin.Begin);
while (i < memoryStream.Length) {
var length = Convert.ToInt32(Math.Min(memoryStream.Length - i, MaxChunkSize));
var datachunk
= new byte[length
]; memoryStream.Read(datachunk, 0, length);
resultBuffer
.Add(new TypedValue
(Convert
.ToInt32(DxfCode
.ExtendedDataBinaryChunk), datachunk
)); i += MaxChunkSize;
}
return resultBuffer;
}
private MemoryStream ResultBufferToStream(ResultBuffer resultBuffer)
{
MemoryStream memoryStream
= new MemoryStream
(); TypedValue[] values = resultBuffer.AsArray();
// Start from 1 to skip application name
for (int i = 1; i <= values.Length - 1; i++) {
byte[] datachunk = (byte[])values(i).Value;
memoryStream.Write(datachunk, 0, datachunk.Length);
}
memoryStream.Position = 0;
return memoryStream;
}