internal override void OnDeliveryStateChanged(Delivery delivery)
{
// some broker may not settle the message when sending dispositions
if (!delivery.Settled)
{
this.Session.DisposeDelivery(false, delivery, new Accepted(), true);
}
if (delivery.OnOutcome != null)
{
Outcome outcome = delivery.State as Outcome;
#if NETFX || NETFX40 || DOTNET
if (delivery.State != null && delivery.State is Amqp.Transactions.TransactionalState)
{
outcome = ((Amqp.Transactions.TransactionalState)delivery.State).Outcome;
}
#endif
delivery.OnOutcome(delivery.Message, outcome, delivery.UserToken);
}
}