/// <summary>
/// Closes the session.
/// </summary>
/// <returns>True if the session is closed; false if close is pending.</returns>
/// <remarks>All links in the session are also closed.</remarks>
protected override bool CloseInternal()
{
if (this.State == AmqpObjectState.OpenReceived)
{
this.SendBegin();
}
this.CloseLinks(!this.LinkFrameAllowed());
AmqpDebug.Dump(this);
AmqpObjectState state = this.SendEnd();
return(state == AmqpObjectState.End);
}