internal void DisposeDelivery(bool role, Delivery delivery, DeliveryState state, bool settled)
{
Delivery current = null;
lock (this.ThisLock)
{
LinkedList deliveryList = role ? this.incomingList : this.outgoingList;
current = (Delivery)deliveryList.First;
while (current != null)
{
if (current == delivery)
{
if (settled)
{
deliveryList.Remove(current);
}
break;
}
current = (Delivery)current.Next;
}
}
if (current != null)
{
current.Settled = settled;
current.State = state;
Dispose dispose = new Dispose()
{
Role = role,
First = current.DeliveryId,
Settled = settled,
State = state
};
this.SendCommand(dispose);
}
}