public uint Disconnect()
{
uint returnValue = 0;
DisconnectRequestBody disconnectBody = new DisconnectRequestBody();
disconnectBody.AuxiliaryBufferSize = 0;
disconnectBody.AuxiliaryBuffer = new byte[] { };
HttpWebResponse response = SendMAPIHttpRequest(this.site, this.mailStoreUrl, this.userName, this.domain, this.userPassword, disconnectBody, "Disconnect", this.cookies);
string transferEncoding = response.Headers["Transfer-Encoding"];
string pendingInterval = response.Headers["X-PendingPeriod"];
string responseCode = response.Headers["X-ResponseCode"];
if (transferEncoding != null)
{
if (string.Compare(transferEncoding, "chunked") == 0)
{
byte[] rawBuffer = ReadHttpResponse(response);
if (uint.Parse(responseCode) == 0)
{
ChunkedResponse chunkedResponse = ChunkedResponse.ParseChunkedResponse(rawBuffer);
DisconnectSuccessResponseBody responseSuccess = DisconnectSuccessResponseBody.Parse(chunkedResponse.ResponseBodyRawData);
returnValue = responseSuccess.ErrorCode;
}
}
}
response.GetResponseStream().Close();
this.cookies = null;
return returnValue;
}
}