public IAsyncResult BeginDischange(ArraySegment<byte> txnId, bool fail, TimeSpan timeout, AsyncCallback callback, object state) { Utils.Trace(TraceLevel.Info, "{0}: Begin discharge the tx (fail={1})", this, fail); Discharge discharge = new Discharge() { TxnId = txnId, Fail = fail }; AmqpMessage message = Controller.CreateCommandMessage(discharge); return this.sendLink.BeginSendMessage(message, this.GetDeliveryTag(), AmqpConstants.EmptyBinary, timeout, callback, state); }