private void PutResponse(TradeSharpClientResponse resp) { responseLocker.AcquireWriterLock(LockTimeout); try { responses.Add(resp); } finally { responseLocker.ReleaseWriterLock(); } }
private static bool DeliverResponse(ITradeSharpServerCallback callback, TradeSharpClientResponse resp, out Exception exception) { exception = null; try { switch (resp.responseType) { case TradeSharpClientResponseType.NewOrder: callback.NewOrderResponse((MarketOrder)resp.ticket, resp.status, resp.detailMessage); break; case TradeSharpClientResponseType.NewPendingOrder: callback.NewPendingOrderResponse((PendingOrder)resp.ticket, resp.status, resp.detailMessage); break; case TradeSharpClientResponseType.CloseOrder: callback.NewCloseOrderResponse((MarketOrder)resp.ticket, resp.status, resp.detailMessage); break; case TradeSharpClientResponseType.EditOrder: callback.EditOrderResponse((MarketOrder)resp.ticket, resp.status, resp.detailMessage); break; case TradeSharpClientResponseType.EditPendingOrder: callback.EditPendingOrderResponse((PendingOrder)resp.ticket, resp.status, resp.detailMessage); break; //case TradeSharpClientResponseType.TradeSignalAction : // callback.ProcessTradeSignalAction((TradeSignalAction)resp.ticket); // break; default: break; } } catch (TimeoutException ex) { Logger.Error("ServiceManagerClientManagerProxy.DeliverResponse TimeoutException", ex); exception = ex; return(false); } catch (CommunicationObjectAbortedException ex) { Logger.Error("ServiceManagerClientManagerProxy.DeliverResponse CommunicationObjectAbortedException", ex); exception = ex; return(false); } catch (Exception ex) { Logger.Error("ServiceManagerClientManagerProxy.DeliverResponse exception: " + ex.Message); exception = ex; return(false); } return(true); }
private static bool DeliverResponse(ITradeSharpServerCallback callback, TradeSharpClientResponse resp, out Exception exception) { exception = null; try { switch (resp.responseType) { case TradeSharpClientResponseType.NewOrder: callback.NewOrderResponse((MarketOrder)resp.ticket, resp.status, resp.detailMessage); break; case TradeSharpClientResponseType.NewPendingOrder: callback.NewPendingOrderResponse((PendingOrder)resp.ticket, resp.status, resp.detailMessage); break; case TradeSharpClientResponseType.CloseOrder: callback.NewCloseOrderResponse((MarketOrder)resp.ticket, resp.status, resp.detailMessage); break; case TradeSharpClientResponseType.EditOrder: callback.EditOrderResponse((MarketOrder)resp.ticket, resp.status, resp.detailMessage); break; case TradeSharpClientResponseType.EditPendingOrder: callback.EditPendingOrderResponse((PendingOrder)resp.ticket, resp.status, resp.detailMessage); break; //case TradeSharpClientResponseType.TradeSignalAction : // callback.ProcessTradeSignalAction((TradeSignalAction)resp.ticket); // break; default: break; } } catch (TimeoutException ex) { Logger.Error("ServiceManagerClientManagerProxy.DeliverResponse TimeoutException", ex); exception = ex; return false; } catch (CommunicationObjectAbortedException ex) { Logger.Error("ServiceManagerClientManagerProxy.DeliverResponse CommunicationObjectAbortedException", ex); exception = ex; return false; } catch (Exception ex) { Logger.Error("ServiceManagerClientManagerProxy.DeliverResponse exception: " + ex.Message); exception = ex; return false; } return true; }