public bool OnCancelBrokerOrder(CreateOrChangeOrder order) { if (!IsRecovered) { return(false); } if (debug) { log.Debug("OnCancelBrokerOrder " + order + ". Connection " + ConnectionStatus + ", IsOrderServerOnline " + isOrderServerOnline); } OrderStore.SetSequences(RemoteSequence, FixFactory.LastSequence); CreateOrChangeOrder createOrChangeOrder; try { createOrChangeOrder = OrderStore.GetOrderById(order.OriginalOrder.BrokerOrder); } catch (ApplicationException ex) { if (LogRecovery || !IsRecovery) { log.Info("Order probably already canceled. " + ex.Message); } if (SyncTicks.Enabled) { var tickSync = SyncTicks.GetTickSync(order.Symbol.BinaryIdentifier); tickSync.RemovePhysicalOrder(); } return(true); } createOrChangeOrder.ReplacedBy = order; if (!object.ReferenceEquals(order.OriginalOrder, createOrChangeOrder)) { throw new ApplicationException("Different objects!"); } SendCancelOrder(order, false); return(true); }