public override byte[] ToBytes()
{
List<byte> totalBuffer = new List<byte>();
RdpbcgrEncoder.EncodeStructure(totalBuffer, tpktHeader);
RdpbcgrEncoder.EncodeStructure(totalBuffer, x224Data);
if (mcsCi != null)
{
byte[] gccData = EncodeGccData(mcsCi.gccPdu);
#region Filling MCS Connect Initial PDU
Connect_Initial connectInitial = new Connect_Initial();
connectInitial.calledDomainSelector = new Asn1OctetString(mcsCi.calledDomainSelector);
connectInitial.callingDomainSelector = new Asn1OctetString(mcsCi.callingDomainSelector);
connectInitial.upwardFlag = new Asn1Boolean(mcsCi.upwardFlag);
connectInitial.targetParameters = new DomainParameters(new Asn1Integer(mcsCi.targetParameters.maxChannelIds),
new Asn1Integer(mcsCi.targetParameters.maxUserIds),
new Asn1Integer(mcsCi.targetParameters.maxTokenIds),
new Asn1Integer(mcsCi.targetParameters.numPriorities),
new Asn1Integer(mcsCi.targetParameters.minThroughput),
new Asn1Integer(mcsCi.targetParameters.maxHeight),
new Asn1Integer(mcsCi.targetParameters.maxMcsPduSize),
new Asn1Integer(mcsCi.targetParameters.protocolVersion));
connectInitial.minimumParameters = new DomainParameters(new Asn1Integer(mcsCi.minimumParameters.maxChannelIds),
new Asn1Integer(mcsCi.minimumParameters.maxUserIds),
new Asn1Integer(mcsCi.minimumParameters.maxTokenIds),
new Asn1Integer(mcsCi.minimumParameters.numPriorities),
new Asn1Integer(mcsCi.minimumParameters.minThroughput),
new Asn1Integer(mcsCi.minimumParameters.maxHeight),
new Asn1Integer(mcsCi.minimumParameters.maxMcsPduSize),
new Asn1Integer(mcsCi.minimumParameters.protocolVersion));
connectInitial.maximumParameters = new DomainParameters(new Asn1Integer(mcsCi.maximumParameters.maxChannelIds),
new Asn1Integer(mcsCi.maximumParameters.maxUserIds),
new Asn1Integer(mcsCi.maximumParameters.maxTokenIds),
new Asn1Integer(mcsCi.maximumParameters.numPriorities),
new Asn1Integer(mcsCi.maximumParameters.minThroughput),
new Asn1Integer(mcsCi.maximumParameters.maxHeight),
new Asn1Integer(mcsCi.maximumParameters.maxMcsPduSize),
new Asn1Integer(mcsCi.maximumParameters.protocolVersion));
connectInitial.userData = new Asn1OctetString(gccData);
#endregion Filling MCS Connect Initial PDU
#region Encode MCS Connect Initial PDU
Asn1BerEncodingBuffer berEncodeBuffer = new Asn1BerEncodingBuffer();
connectInitial.BerEncode(berEncodeBuffer);
#endregion MCS Connect Initial PDU
if (berEncodeBuffer.Data != null)
{
RdpbcgrEncoder.EncodeBytes(totalBuffer, berEncodeBuffer.Data);
}
}
return RdpbcgrUtility.ToBytes(totalBuffer);
}