public void SwitchLanesForOrderPostStatusUpdate(Order orderNowAfterUpdate, OrderState orderStatePriorToUpdate) { string msig = " OrderProcessorDataSnapshot::SwitchLanesForOrderPostStatusUpdate() "; lock (this.orderStateUpdateAtomicJustInCase) { OrderListByState orderLaneBeforeStateUpdate = this.FindStateLaneExpectedByOrderState(orderStatePriorToUpdate); OrderListByState orderLaneAfterStateUpdate = this.FindStateLaneExpectedByOrderState(orderNowAfterUpdate.State); if (orderLaneBeforeStateUpdate == orderLaneAfterStateUpdate) { return; } try { orderLaneBeforeStateUpdate.Remove(orderNowAfterUpdate); } catch (Exception e) { Assembler.PopupException(msig, e); } try { orderLaneAfterStateUpdate.Insert(0, orderNowAfterUpdate); } catch (Exception e) { Assembler.PopupException(msig, e); } } }